Makale numarası: 317955 - Son Gözden Geçirme: 08 Temmuz 2005 Cuma - Gözden geçirme: 4.4

Düzeltme: bir ASP.NET sayfasına gözattığınızda "dizin değişikliklerini izleme başlatılamadı" hata iletisi

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Belirtiler

Bir <a1>ASP.NET</a1> (.aspx) sayfasına gözattığınızda, aşağıdaki hata iletilerinden birini alabilirsiniz:
' D:\MyWeb\Users\MainDirectory\MyApplication\ ' dizinine erişim. Dizin değişikliklerini izleme başlatılamadı.
-VEYA-
Erişim ' D:\MyWeb\Users\MainDirectory\MyApplication\SamplePage.aspx için ' engellendi. Dosya değişikliklerinin izlenmesi başlatılamadı.
Her biri, bu hata iletileri ile ilgili çağrı yığın izlemelerini hakkında daha fazla bilgi için "Ek bilgi" bölümüne bakın.

Neden

Dosya değişiklikleri algılamak için <a0></a0>, işlem kimliği ve Kimliğine bürünülen kullanıcının kimliğini belirli tüm dizinlerin, ASP.NET, dizinler varsa sıradüzeni olduğunu sekiz karakterden fazla adlarını izleme dosyası için dosya yolunu hiyerarşisindeki izinleriniz olmalıdır.

ASP.NET izleyen dosyaların bazı örnekler aşağıdaki gibidir:
  • Web.config dosyaları
  • Machine.config dosyalarını
  • Bir ASP.NET uygulamasının bin dizinine dosyaları
  • Bağımlılık dosyalar? önbelle?e
Aspnet_wp.exe işlem kimliğinin (Varsayılan ASPNET hesabı) dizinleri, dosya yolu hiyerarşisindeki en az birinde izinleri yoksa, ilk hata iletisi alırsınız.

Kimliğine bürünülen hesabın bu dosya yolu hiyerarşisini dizinlerde en az birinde izinleri yoksa, ikinci hata iletisini alırsınız.

Çözüm

Bu sorunu gidermek için aşağıdaki yöntemlerden birini kullanın.

Yöntem 1

Tüm dizin adlarını, dosya yolu hiyerarşisindeki dokuzdan daha az karakterden uzun olduğundan emin olun.

Örneğin,:
C:\Web\Users\MainDir\Site1
Not Web sitesi, Microsoft ınternet ınformation Services (dizini yeniden adlandırma ile ilgili için IIS) yapılandırmasının, gerekli değişiklikleri yaptıktan sonra her bir dizin adı uzunluğu şimdi dokuz'den az karakter olacak biçimde dizinleri yeniden adlandırırsanız, ııS'YI yeniden başlatmanız gerekir.

Yöntem 2

(Kimliğe bürünme özelliği etkinleştirilmişse) tüm dizinlerin ASP.NET işlem hesabı (varsayılan olarak, ASP.NET) veya Kimliğine bürünülen hesabın bu sıradüzeninde gerekli izinleri verin. Bunu yapmak için şu adımları izleyin:
  1. Windows Gezgini içinde (örneğin, D:\MyWeb\Users\MainDirectory\MyApplication) içeriğin bulunduğu sanal dizin veya uygulama klasörü gidin.
  2. Klasörü sağ tıklatın ve sonra da Özellikler ' i tıklatın.
  3. Güvenlik sekmesinde Ekle ' yi tıklatın.
  4. ComputerName \ASPNET (Webdev, adlı Webdev\ASPNET yazın örneğin, bir bilgisayarda) yazın ve Tamam ' ı tıklatın. Kimliğe bürünme özelliği açıksa, Kimliğine bürünülen hesaplarını da eklemeniz gerekir.
  5. Kimliğe bürünme özelliği açıksa, ASPNET hesabı (ve hesapların Kimliğine bürünülen) aşağıdaki izinleri ver:
    • Okuma ve yürütme
    • Klasör içeriğini Listele
    • Okuma

  6. Tamam <a0>Özellikler</a0> iletişim kutusunu kapatın ve değişiklikleri kaydetmek için Ek Yardım düğmesini tıklatın.
  7. Tüm klasörleri hiyerarşisindeki yolu için 2-6 arasındaki adımları yineleyin. Örneğin,:

    • D:\MyWeb\Users\MainDirectory
    • D:\MyWeb\Users
    • D:\MyWeb
    • d:\

    5. Adımı tamamladıktan sonra bu klasörler için daha kısıtlayıcı izinler vermek istiyorsanız, aşağıdaki adımları izleyin:

    1. Gelişmiş ' i tıklatın.
    2. Izinler sekmesinde, ASPNET hesabı (veya başka bir Kimliğine bürünülen hesabın) izin girdisini tıklatın ve sonra da <a2>Düzenle</a2>'yi tıklatın.
    3. Tümünü Temizle'yi tıklatın ve sonra izin ver onay kutusunu seçmek için klasörleri Listele / veri okuma izni.
    Not: uygulamanın sanal dizini (örneğin, D:\MyWeb\Users\MainDirectory\MyApplication) 5. adımda belirtilen izinler en az olması gerekir.
  8. IIS'yi yeniden başlatın.

Yöntem 3

IIS 6.0 çalıştıran bilgisayarınızda, Network Service hesabının bu hiyerarşisindeki tüm klasörler üzerinde gerekli izinleri verin. Bunu yapmak için şu adımları izleyin:
  1. Windows Gezgini'nde, uygulama klasörü veya içeriğini (örneğin, D:\MyWeb\Users\MainDirectory\MyApplication) içeren sanal dizini bulun.
  2. Klasörü sağ tıklatın ve sonra da Özellikler ' i tıklatın.
  3. Güvenlik sekmesinde Ekle ' yi tıklatın.
  4. ComputerName \NETWORK SERVICE (Webdev, adlı Webdev\NETWORK SERVICE yazın örneğin, bir bilgisayarda) yazın ve Tamam ' ı tıklatın. Kimliğe bürünme özelliği açıksa, Kimliğine bürünülen hesaplarını da eklemeniz gerekir.
  5. Kimliğe bürünme özelliği etkinleştirilmişse ağ hizmeti hesabının (ve hesapların Kimliğine bürünülen) aşağıdaki izinleri ver:
    • Okuma ve yürütme
    • Klasör içeriğini Listele
    • Okuma

  6. Tamam <a0>Özellikler</a0> iletişim kutusunu kapatın ve değişiklikleri kaydetmek için Ek Yardım düğmesini tıklatın.
  7. Yolun hiyerarşisindeki tüm klasörler için 2-6 arasındaki adımları yineleyin. Örneğin,:
    • D:\MyWeb\Users\MainDirectory
    • D:\MyWeb\Users
    • D:\MyWeb
    • d:\
    5. Adımı tamamladıktan sonra bu klasörler için daha kısıtlayıcı izinler vermek istiyorsanız, aşağıdaki adımları izleyin:
    1. Gelişmiş ' i tıklatın.
    2. Izinler sekmesinde, Network Service hesabının (veya başka bir Kimliğine bürünülen hesabın) izin girdisini tıklatın ve sonra da <a2>Düzenle</a2>'yi tıklatın.
    3. Tümünü Temizle'yi tıklatın ve sonra izin ver onay kutusunu seçmek için klasörleri Listele / veri okuma izni.
    Not Uygulamanın sanal dizini (örneğin, D:\MyWeb\Users\MainDirectory\MyApplication), en az 5. adımda belirtilen izinlere sahip olmanız gerekir.
  8. IIS'yi yeniden başlatın.
Not Bu adımlar, yalnızca IIS 6. 0'da bulunan Web uygulamaları için geçerlidir.

Durum

Microsoft, bunun bu makalenin başında listelenen Microsoft ürünlerinde bir hata olduğunu onaylamıştır. Bu hata, ASP.NET'te (.NET Framework ile birlikte gelen) düzeltilmiştir 1.1.

Daha fazla bilgi

Bu, "Belirtiler" bölümünde ilk hata iletisiyle ilgili çağrı yığın izleme şöyledir:
[HttpException (0x80004005): Access denied to 'D:\MyWeb\Users\MainDirectory\MyApplication\' directory. Failed to start monitoring directory changes.]
   System.Web.FileChangesMonitor.StartMonitoringDirectoryRenamesAndBinDirectory(String dir, FileChangeEventHandler callback)
   System.Web.HttpRuntime.StartMonitoringDirectoryRenamesAndBinDirectory()
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context)

[HttpException (0x80004005): ASP.NET Initialization Error]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context)
   System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
					
Bu, ikinci hata iletisinde "Belirtiler" bölümünde ile ilişkili çağrı yığın izleme şöyledir:
[HttpException (0x80004005): Access denied to 'D:\MyWeb\Users\MainDirectory\MyApplication\SamplePage.aspx'. Failed to start monitoring file changes.]
   System.Web.FileChangesMonitor.StartMonitoringFile(String fileName, FileChangeEventHandler callback)
   System.Web.Caching.CacheDependency.Init(String[] filenames, String[] cachekeys, CacheDependency dependency, DateTime start)
   System.Web.Caching.CacheDependency..ctor(String filename, DateTime start)
   System.Web.Caching.CacheDependency..ctor(String filename)
   System.Web.Security.FileAuthorizationModule.OnEnter(Object source, EventArgs eventArgs)
   System.Web.SyncEventExecutionStep.Execute()
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
					
"Belirtiler" bölümünde listelenen hata iletilerinden birini alırsanız, ancak çağrı yığınının izleme aynı değilse, hata iletisinin nedeni farklı olabilir. Bu durumda makalelerinde daha fazla bilgi için "Başvurular" konusuna bakın.

Referanslar

Farklı bir senaryoda aynı hata iletisi hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
316721  (http://support.microsoft.com/kb/316721/ ) ASP.NET sayfasına gözattığınızda "dizin değişikliklerini izleme başlatılamadı" hata iletisi
ASPNET hesabı ASP.NET uygulamalarınızı çalıştırmak için gerekli izinler hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
317012  (http://support.microsoft.com/kb/317012/ ) ASP.NET'te işlem ve istek kimliği (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir.)
ASP.NET güvenliği hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
306590  (http://support.microsoft.com/kb/306590/ ) ASP.NET güvenliğine genel bakış

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ASP.NET 1.0
Anahtar Kelimeler: 
kbmt kbfix kbbug kbcaching kbpending kbsecurity KB317955 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:317955  (http://support.microsoft.com/kb/317955/en-us/ )
Retired KB ArticleKullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.