Crystal Report Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. The system cannot find the file specified. Hat

gerdal (8) 10 yıl önce sordu

Merhabalar, 

Bilgisayarıma CR 64 bit versiyonu kurdum. Runtimeda sorunsuz çalışıyor ancak Server da publish ettiğimde ise

Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. The system cannot find the file specified. Hatası alıyorum. Her yolu denedim olmadı.Server da 64 bit. IIS de Applicaton pool da Enable 32 bit applicaton True yaptım. X86 da derleyip de denedim. Hep aynı hatayı alıyorum. Sorun ne olabilir sizce?

Bir de Servera CR 64 bit versiyonu kurdum ancak ne değişecek anlayamadım. Cunku uygulamanın bin klasorunde arıyor DLL leri. Cevap verebilirseniz çok sevinirim. Saygılarımla

Toplam 3 cevap


gerdal (8) 10 yıl önce cevapladı

Servera CR 64 bit Runtime yükleyip, projemin tüm dll lerini x64 de derleyip, target platform x64 yaptım.Application Pool'ulunda  Enable 32 bit applicaton=False yaparak eski yani default haline getirdim. DLL hatası almadan çalıştı. Ancak daha sonra bu seferde rapor kısmı boş sayfa olarak geldi. Bunun çözümü de C:\inetpub\wwwroot\aspnet_client deki aspnet_client klasorunu C:\inetpub\wwwroot\Proje\aspnet_client pathına kopyaladım. Sorunsuz çalıştı. Cevaplarınız yardımcı oldu. Çok tşkler

alattin (17127) 10 yıl önce cevapladı

log4net dll dosyasını uygulamazın sunucudaki Bin klasörünün altına kopyalamak sorunu çözecektir.

Fakat bunu yaparken şuna dikkat edin: Uygulamanız 32 bit derleniyor ise log4net.dll dosyası da 32 bit olmalıdır. Bazen Visual Studio publish ettiğinizde 64 bit log4net.dll dosyasını kopyalıyor.

Eğer CR kütüphanelerini assembly klasöründen kullanmak istiyorsanız  %systemdrive%\windows\assembly\ yolunda gerekli DLL dosyalarının varlığını kontrol edin. Eğer burada log4net assemblyleri görünmüyorsa CR düzgün yüklenenemiş demektir.

Hatanın diğer sebebi x64 sunucuya Crystal Reports x86 sürümünün yüklenmesi ile ortaya çıkar.

Doğru x64 sürümünü yüklemek sorunu çözecektir.

Sunucunuz x64 ise sunucuya CR x64 sürümünü yüklemelisiniz.

Ayrıca uygulamanızı x86 olarak geliştirdiyseniz,  sunucudaki uygulamazın bin klasörüne gerekli dll dosyalarını yüklemeli ve IIS içinde Application Pool gelişmiş ayarlarında Enable 32 bit Applications değerini True yapmalısınız.

Son olarak, Visual Studio'da uygulamanızı 32 bit olarak derliyor, log4net.dll dosyası 64 bit kalıyor olabilir.

Sorunu çözmek için buna odaklansanız kolayca sorunu çözebilirsiniz gibi geliyor. 

enoua (108) 10 yıl önce cevapladı

Ben de böyle problemler ile karşılaşıyordum. Web.config den log4net.dll kısmını sildim. Server a da 64 bir runtime yükledim çalıştı.