Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 14933|Yanıt: 1

[ASP.NET] asp.net Site dizin dosyası boş alın

[Bağlantıyı kopyala]
Yayınlandı 5.01.2018 16:18:49 | | | |
İlk olarak, web sitesi dizin dosyasını almak için kodu yapıştırın, aşağıdaki gibi:



Bu cümle çalıştırıldıktan sonra, aşağıdaki şekilde gösterildiği gibi, nesnenin boş olduğunu belirten bir istisna atılır:



Neden sıfır alıyorum?

Çünkü bu kodu çalıştıran iş parçacığı, mevcut isteği işleyen mevcut iş parçacığı değildir

Neden başka yerde bulurken boş olmuyor?

Bunun nedeni, ASP.NET programın HttpContext nesnesini kodunuzu çağırmadan önce bahsedilen System.Runtime.Remoting.Messaging.CallContext.HostContext özelliğine ayarlamış olmasıdır.

HttpApplication'ın OnThreadEnter(), ASP adlı dahili bir yöntemi vardır. .NET, örneğin, boru hattının olay işleyicisi çalıştırıldığında veya senkronizasyon bağlamı (AspNetSynchronizationContext) geri çağrı yaptığında, harici kod çağırmadan önce HttpContext'i değiştirmek için bu yöntemi çağırır. İş parçacığının CallContext.HostContext özelliğini değiştirdikten sonra, kodumuz HttpContext referansına erişebilir. Not: HttpContext referansı aslında HttpApplication nesnesinde kaydedilmiştir.



Bu durumda dosyanın mutlak yolunu nasıl elde edebilirim?

Programın kök yolunu almak için System.Web.HttpRuntime.AppDomainAppPath adresine erişebiliriz, ve ardından dosyanın göreli yollarını birleştirin





Önceki:Intel CPU'larının altta yatan zafiyetinin tam açıklaması: Dünyada hiçbir cep telefonu/bilgisayar bundan korunmamaktadır
Önümüzdeki:Autofac oluşturma örneği metodolojisinin özeti
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com