Referans: https://support.microsoft.com/en-in/help/2028526/building-an-asp-net-project-in-visual-studio-results-in-compiler-error
Visual Studio kullanarak bir ASP.NET projesi oluştururken, rastgele aşağıdakine benzer bir hata iletisi görebilirsiniz:
Derleyici Hata Mesajı: CS0433: 'ASP.summary_common_controls_notes_ascx' türü hem 'c: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET Files \ Book_Details \ abc12345 \ def8910 \ App_Web_msftx123.dll' hem de ' c: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Geçici ASP.NET Dosyaları \ Book_Details \ abc12345 \ def8910 \ App_Web_msfty456.dll '
Açıklama: Bu isteğe hizmet vermek için gereken kaynağın derlenmesi sırasında bir hata oluştu. Lütfen aşağıdaki belirli hata ayrıntılarını inceleyin ve kaynak kodunuzu uygun şekilde değiştirin.
Kaynak Hatası: Satır 100: Satır 101:
Yeni Notlar Satır 102:
Satır 103:
1450 Satır 104:
Özet.
Kaynak Dosya: d: \ http \ post \ publisher \ default.aspx Satır: 102
Bu hatanın ortaya çıkabileceği yaygın senaryolar aşağıda tartışılmıştır.
Senaryo 1
Açıklama: Yaygın bir neden, aynı web uygulaması bin klasöründe iki sınıf tanımı içeren ancak aynı sınıf adına sahip iki derlemenin olmasıdır. Bu, birden fazla Default.aspx tek bir derlemede derlenmişse gerçekleşebilir. Bu genellikle Ana sayfa (Default.master) ve Varsayılan ASPX sayfası (Default.aspx) bir _Default sınıfı bildirdiğinde oluşur. Çözüm: Ana sayfanın sınıf adını değiştirin (çoğu durumda _Default'tan) ve projeyi yeniden oluşturun. Sınıflar arasındaki herhangi bir adlandırma anlaşmazlığını çözmek önemlidir.
Senaryo 2
Açıklama: Visual Studio'daki Referans Yolları, proje tarafından kullanılan montaj referansları için klasör yolunu belirtmek için kullanılır. Yolun aynı sınıf adını içeren bir derleme içermesi olasıdır. Bir adlandırma çakışmasına neden olan aynı derlemeye (muhtemelen farklı sürüm veya ad) eklenmiş birden fazla Referans olabilir.
Çözüm: Eski sürüm referansını kaldırın. Bunu yapmak için, Visual Studio'da web sitenize sağ tıklayın ve özelliklerdeki "Referanslar" ı kontrol edin.
3. Senaryo
Açıklama: Varsayılan olarak, bir ASP.NET Web uygulaması derlendiğinde, derlenen kod Temporary ASP.NET Files klasörüne yerleştirilir. Varsayılan olarak erişim izinleri, derlenmiş koda erişmek için gereken yüksek güven izinlerine sahip olan ASP.NET yerel kullanıcı hesabına verilir. Varsayılan izinlerde sürüm çakışmalarına neden olan bazı değişiklikler olabilir. Diğer bir olasılık, anti-virüs yazılımının bir düzeneği yanlışlıkla kilitliyor olması olabilir. Çözüm: Tüm içeriğin Geçici ASP.NET Dosyaları Klasörünü temizleyin.
Senaryo 4
Açıklama: web.config dosyasındaki batch özniteliği True olarak ayarlandığında, bir dosyaya ilk kez eriştiğinizde gereken derlemenin neden olduğu gecikmeyi ortadan kaldırır. ASP.NET, tüm derlenmemiş dosyaları toplu iş modunda önceden derler ve bu da dosyaların ilk derlenmesinde gecikmelere neden olur. Toplu derlemenin kapatılması, uygulamada var olabilecek ancak rapor edilmeyen maskelenmiş derleme hatalarını ortaya çıkarabilir. Ancak bu sorun için daha da önemlisi, ASP.NET'e tek tek .aspx / .ascx dosyalarını tek bir derleme yerine ayrı derlemelerde dinamik olarak derlemesini söyler. Çözüm: web.config bölümünde batch = false değerini ayarlayın. Derleme bölümünde batch = false ayarının Visual Studio'daki uygulama için derleme süreleri üzerinde önemli bir performans etkisi olduğu için bu geçici bir çözüm olarak düşünülmelidir.
Senaryo 5
Açıklama: Bir ASP.NET uygulaması için web.config dosyasını değiştirmek veya bin klasöründeki bir dosyayı değiştirmek (ekleme, silme veya yeniden adlandırma gibi) AppDomain'in yeniden başlatılmasına neden olur. Bu gerçekleştiğinde tüm oturum durumu kaybolur ve web sitesi yeniden başlatılırken önbelleğe alınan öğeler önbellekten kaldırılır. Sorunun web uygulamasındaki tutarsız bir durumdan kaynaklanması mümkündür. Çözüm: web.config dosyasına dokunarak (düzenleyerek) bir AppDomain yeniden başlatmayı tetikleyin.
6. Senaryo
Açıklama: Kaynak kodunu App_Code klasöründe saklayabilirsiniz ve çalışma zamanında otomatik olarak derlenecektir. Ortaya çıkan derlemeye Web uygulamasındaki herhangi bir başka kod tarafından erişilebilir. Bu nedenle App_Code klasörü, derlenmiş kod yerine kaynak kodunu saklayabilmeniz dışında Bin klasörüne çok benzer şekilde çalışır. Kaynak dosyada bir değişiklik olduğunda sınıf yeniden derlenecektir. Güncel olmayan bir derlemeden kaynaklanan bir çakışma varsa, yeniden derlemeye zorlamak sorunu çözebilir. Çözüm: Tam bir yeniden derlemeyi tetiklemek için Bin veya App_Code klasörlerindeki bir dosyaya dokunun.