ASP.NET IIS Dizinlerine Erişim ReddedildiASP.NET Denied Access to IIS Directories

Bu teknik incelemede, ASP.NET uygulamanıza yönelik bir istek, " DirectoryName dizinine erişim engellendi" hatasını döndürürse ne yapmanız gerektiğini açıklar.This whitepaper describes what you must do if a request to your ASP.NET application returns the error, "Denied Access to DirectoryName directory. Dizin değişikliklerini izleme işlemi başlatılamadı. "Failed to start monitoring directory changes."

ASP.NET 1,0 ve ASP.NET 1,1 için geçerlidir.Applies to ASP.NET 1.0 and ASP.NET 1.1.

ASP.NET v1 RTM artık yerel bir makinede "ASPNET" hesabı olarak kaydedilmiş daha az ayrıcalıklı bir Windows hesabı kullanarak çalışır.ASP.NET V1 RTM now runs using a less privileged windows account - registered as the "ASPNET" account on a local machine.

Bazı kilitli sistemlerde, bu hesap varsayılan olarak bir Web sitesinin içerik dizinlerine, uygulama kök dizinine veya Web sitesi kök dizinine okuma güvenlik erişimine sahip olabilir.On some locked down systems, this account may not by default have read security access to a website's content directories, the application root directory, or the web site root directory. Bu durumda, belirli bir Web uygulamasından sayfa istenirken aşağıdaki hatayı alırsınız:In this case you will receive the following error when requesting pages from a given web application:

Bu hatayı düzeltemedi, uygun dizinlerde güvenlik izinlerini değiştirmeniz gerekir.To fix this you will need to change the security permissions on the appropriate directories.

Özellikle, ASP.NET Web sitesi köküne yönelik ASPNET hesabı için okuma, yürütme ve listeleme erişimi gerektirir (örneğin, c:\ınetpub\wwwroot veya IIS 'de yapılandırdığınız alternatif site dizini), içerik dizini ve uygulama kök dizini yapılandırma dosyası değişikliklerini izlemek için.Specifically, ASP.NET requires read, execute, and list access for the ASPNET account for the web site root (for example: c:\inetpub\wwwroot or any alternative site directory you may have configured in IIS), the content directory and the application root directory in order to monitor for configuration file changes. Uygulama kökü, IIS Yönetim Aracı 'nda (inetmgr) uygulama sanal diziniyle ilişkili klasör yoluna karşılık gelir.The application root corresponds to the folder path associated with the application virtual directory in the IIS Administration tool (inetmgr).

Örneğin, Wwwroot klasörü altında aşağıdaki uygulama hiyerarşisini göz önünde bulundurun.For example, consider the following application hierarchy under the wwwroot folder.

C:\inetpub\wwwroot\myapp\default.aspx

Bu örnekte, ASPNET hesabının hem MyApp hem de Wwwroot dizinindeki içerik için yukarıda tanımlanan okuma izinlerine ihtiyacı vardır.For this example, the ASPNET account needs the read permissions defined above for content in both the myapp and the wwwroot directory. Kök klasördeki tek bir devralınan ACL, iç içe yerleştirilmiş olmaları durumunda her iki dizin için de isteğe bağlı olarak kullanılabilir.A single inherited ACL on the root folder can also be optionally used for both directories if they're nested.

Bir dizine izinler eklemek için aşağıdaki adımları uygulayın:To add permissions to a directory, perform the following steps:

  • Windows Gezgini 'ni kullanarak dizine gidinUsing the Windows explorer, navigate to the directory
  • Dizin klasörüne sağ tıklayın ve "Özellikler" i seçinRight click on the directory folder and choose "Properties"
  • Özellik iletişim kutusunda "güvenlik" sekmesine gidinNavigate to the "Security" tab on the property dialog
  • "Ekle" düğmesine tıklayın ve ardından ASPNET hesap adının ardından makine adını girin.Click the "Add" button and enter the machine name followed by the ASPNET account name. Örneğin, "WebDev" adlı bir makinede, Web Dev\aspnet yazın ve "Tamam" a tıklayın.For example, on a machine named "webdev", you would enter webdev\ASPNET and hit "OK".
  • ASPNET hesabının "okuma & yürütme", "klasör Içeriğini listeleme" ve "okuma" onay kutularının işaretli olduğundan emin olun.Ensure that the ASPNET account has the "Read & Execute", "List Folder Contents", and "Read" checkboxes checked.
  • İletişim kutusunu kapatmak ve değişiklikleri kaydetmek için Tamam 'a basın.Hit OK to dismiss the dialog and save the changes.

İsterseniz, bu değişiklikler, Windows ile birlikte gelen betikler veya "cacls. exe" Aracı kullanılarak otomatikleştirilebilir.If desired, these changes can be automated using scripts or the "cacls.exe" tool that ships with Windows. ASPNET hesabı hakkında daha fazla bilgi için lütfen SSS belgesinebakın.For more information on the ASPNET account, please see the FAQ document.

Belirli bir Web uygulamasının belirli bir klasör veya dosyaya yazma veya değiştirme izinleri varsa, bu, aynı yordam ve "yazma" ve/veya "Değiştir" onay kutularını işaretleyerek verilebilir.If a given web application relies on having write or modify permissions to a particular folder or file, this can be granted by following the same procedure and checking the "Write" and/or "Modify" checkboxes.

Herkese veya kullanıcılar grubuna bu dizinlere okuma erişimi sağlayan makinelerde (varsayılan yapılandırma), hiçbir sorunla karşılaşılmaz ve yukarıdaki adımlar gerekli olmayacaktır.On machines that allow Everyone or the Users group read access to these directories (which is the default configuration), no issues will be encountered and the above steps will not be required.