Yönettiğim Windows Server 2008 R2 web sunuculardan birinde .NET Framework 4 kurduktan sonra .NET Framework 3.5.1 WCF servislerini aktif etmem gerekti. .NET 3.5.1 WCF servisini aktif ettiğimde .NET 4 framework'ünde çalışan sitelerde aşağıdaki gibi bir hata mesajı aldım.
Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.TypeLoadException: Could not load type 'System.ServiceModel.Activation.HttpModule' from assembly 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
Not : Benzer durum aynı şekilde Windows 7 üzerinde de yaşanabilmekte. Buradaki çözümleri Windows 7 üzerinde de uygulayabilirsiniz.
Yaptığım araştırmalar sonucu .NET 4 kurulduktan sonra .NET 3.5 WCF servisleri ile ilgili bir değişiklik yapıldığında .NET 4'ün çalışmasında sorun olabildiği bilgisine ulaştım. Sorunu çözebilmek için komut satırından aşağıdaki komutları çalıştırmak gerekiyor :
32-bit uygulamalar için (İşletim sistemi 64-bit olsa da çalıştırmak gerekiyor) :
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -iru
64-bit uygulamalar için (Sadece 64-bit işletim sistemlerinde çalıştırmak gerekiyor) :
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis -iru
Komutları çalıştırdığımızda herhangi bir hata olmaz ise karşılaşacağımız ekran görüntüsü aşağıdaki gibi olacaktır :
İşlemleri tamamladıktan sonra artık .NET 4 ile yazılmış olan site problemsiz olarak çalışmaya devam ediyordu.