21 Mart 2015 Cumartesi

Event ID 1309 - Exception Message Could Not Load Assembly

Merhaba;

Bu makalemde çoğu sistem yöneticisinin başına gelebilecek bir konu üzerinde duracağım. Diyelimki .Net üzerinde geliştirilen bir web sitesi var ve bu sitenin yeni versiyonunu sunucu üzerinde güncellemeye karar verdiniz. Farz edelim ki kullandığınız dll 'leri yeni versiyonda güncelleyerek sitenizi derlediniz. Ardından IIS sunucusu üzerinde publish ettiniz. Ve bir anda Windows Server application log'larında Event ID 1309 hatalarını görmeye başladınız. Kendinize şu soruyu sormaya başladınız; eski dll ve yeni dll aynı .net versiyonunu destekliyor ise neden windows server yeni dll'li load edemiyor?



IIS server, iisreset /stop ve iisreset/start komutları sonrasında (framework versiyonuna göre dizin değişkenlik gösterebilir) C:\Windows\Microsoft.NET\Framework\v.2.0.50.727\Temporary ASP.NET Files altını temizler. Fakat bu temizlik, bazı durumlarda başarılı olamayabiliyor. Bunun sebebi, Anti Virus Koruması, Windows Security Upgrade, .Net framework upgrade yada farklı bir üçüncü tür uygulamanın bu yapıyı bozması olabilir.

Bu gibi durumlarda uygulayabileceğiniz iki seçenek var. Bunlardan birincisi, iisreset /stop yapıp Temporary ASP.NET folderının içerisini temizlemek ardından iisreset /start komutunu çalıştırmak. Bu işlem sonrasında derlenen dosyaların, tekrar bu folder içerisinde oluştuğunu göreceksiniz.

İkinci yöntem ise aşağıdaki adımları takip ederek Temporary ASP.NET folder'larını silip yeniden oluşturmanız. Folder isimleri framework versiyonuna göre değişkenlik gösterebilir. Bu komutları kullandığınızda sisteminizde oluşacak olan herhangi bir sorunda sorumluluk kabul edilmemektedir. .Net versiyonunuzu kontrol edip komutlarınızı mutlaka doğru versiyonlara göre oluşturun.

iisreset /stop
rmdir /q /s "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files"
rmdir /q /s "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files"
md "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files"
md "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files"
xcacls "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files" /E /G MYMACHINE\IIS_WPG:F /Q
xcacls "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files" /E /G MYMACHINE\IIS_WPG:F /Q
iisreset /start

Dilerseniz yukarıdaki komutları bir notepad dosyasına vbs olarak kayıt edip çalıştırabilirsiniz!

Bir sonraki yazıda görüşmek üzere.


Hiç yorum yok:

Yorum Gönder