Platforma ASP.NET nie ma dostępu do katalogów usług IIS
W tym oficjalnym dokumencie opisano, co należy zrobić, jeśli żądanie do aplikacji ASP.NET zwróci błąd "Odmowa dostępu do katalogu DirectoryName . Nie można uruchomić monitorowania zmian katalogu.
Dotyczy ASP.NET 1.0 i ASP.NET 1.1.
ASP.NET V1 RTM działa teraz przy użyciu mniej uprzywilejowanego konta systemu Windows — zarejestrowanego jako konto "ASPNET" na komputerze lokalnym.
W niektórych zablokowanych systemach to konto może domyślnie nie mieć dostępu do odczytu zabezpieczeń do katalogów zawartości witryny sieci Web, katalogu głównego aplikacji lub katalogu głównego witryny sieci Web. W takim przypadku podczas żądania stron z danej aplikacji internetowej zostanie wyświetlony następujący błąd:
Aby rozwiązać ten problem, należy zmienić uprawnienia zabezpieczeń dla odpowiednich katalogów.
W szczególności ASP.NET wymaga dostępu do odczytu, wykonywania i wyświetlania listy dla konta ASPNET dla katalogu głównego witryny sieci Web (na przykład: c:\inetpub\wwwroot lub dowolnego alternatywnego katalogu witryn, który mógł zostać skonfigurowany w usługach IIS), katalogu zawartości i katalogu głównego aplikacji w celu monitorowania zmian w pliku konfiguracji. Katalog główny aplikacji odpowiada ścieżce folderu skojarzonej z katalogiem wirtualnym aplikacji w narzędziu administracyjnym usług IIS (inetmgr).
Rozważmy na przykład następującą hierarchię aplikacji w folderze wwwroot.
C:\inetpub\wwwroot\myapp\default.aspx
W tym przykładzie konto ASPNET wymaga uprawnień do odczytu zdefiniowanych powyżej dla zawartości w katalogu myapp i wwwroot. Pojedyncza dziedziczona lista ACL w folderze głównym może być również opcjonalnie używana dla obu katalogów, jeśli są one zagnieżdżone.
Aby dodać uprawnienia do katalogu, wykonaj następujące kroki:
- Za pomocą Eksploratora Windows przejdź do katalogu
- Kliknij prawym przyciskiem myszy folder katalogu i wybierz polecenie "Właściwości"
- Przejdź do karty "Zabezpieczenia" w oknie dialogowym właściwości
- Kliknij przycisk "Dodaj" i wprowadź nazwę maszyny, po której następuje nazwa konta ASPNET. Na przykład na maszynie o nazwie "webdev" wprowadź wartość webdev\ASPNET i naciśnij klawisz "OK".
- Upewnij się, że na koncie ASPNET zaznaczono pola wyboru "Odczyt & Wykonaj", "Wyświetl zawartość folderu" i "Odczyt".
- Naciśnij przycisk OK, aby zamknąć okno dialogowe i zapisać zmiany.
W razie potrzeby te zmiany można zautomatyzować przy użyciu skryptów lub narzędzia "cacls.exe", które jest dostarczane z systemem Windows. Aby uzyskać więcej informacji na temat konta ASPNET, zobacz dokument Często zadawane pytania.
Jeśli dana aplikacja internetowa korzysta z uprawnień do zapisu lub modyfikowania określonego folderu lub pliku, można to przyznać, wykonując tę samą procedurę i zaznaczając pola wyboru "Zapis" i/lub "Modyfikuj".
Na maszynach, które zezwalają wszystkim lub grupie Użytkownicy na dostęp do odczytu do tych katalogów (co jest konfiguracją domyślną), nie zostaną napotkane żadne problemy, a powyższe kroki nie będą wymagane.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla