Próbuję przetestować moją witrynę ASP.Net na localhost i otrzymuję ten błąd:
HTTP Error 401.3 - Unauthorized
You do not have permission to view this directory or page because of
the access control list (ACL) configuration or encryption settings for
this resource on the Web server.
Mam następujących użytkowników w folderze aplikacji witryny z pełnymi uprawnieniami do odczytu / zapisu:
- USŁUGA SIECIOWA
- IIS_IUSRS
- SYSTEM
- Administratorzy
- Nathan (ja)
Co mogę spróbować to naprawić?
Odpowiedzi:
IIS 7 tworzy również „IUSR” jako domyślny użytkownik, który ma dostęp do plików przez IIS. Więc spraw, aby użytkownik IUSR miał dostęp do odczytu plików / folderów.
Jak sprawdzić, czy IUSR przeczytał Access? Kliknij prawym przyciskiem myszy -> Folder -> Właściwości -> Karta Zabezpieczenia Sprawdź, czy IUSR znajduje się na liście nazw grup lub użytkowników, jeśli nie.
Kliknij Edytuj -> Dodaj -> Zaawansowane -> Znajdź teraz -> Wybierz IUSR i kliknij OK cztery razy
źródło
IIS_IUSRs
nie wystarczyło; Musiałem także dodaćIUSR
. Warto pamiętać: o)Znalazłem to na innym forum, więc nie mogę się pochwalić, ale zrobiłem to i zadziałało dla mnie:
„Spróbuj zmienić ustawienie uwierzytelniania anonimowego w IIS7:
Kliknij na Uwierzytelnianie i kliknij edytuj po wybraniu Uwierzytelniania anonimowego. W oknie otwierającym wybierz Tożsamość puli aplikacji i kliknij OK. „
źródło
Miałem ten sam problem w IIS 7.5 w systemie Windows Server 2008. Dla mnie następujące kroki działały w celu rozwiązania problemu:
Po wprowadzeniu tej zmiany zniknęły moje błędy 401,3.
źródło
Czy używasz mechanizmu logowania, czy tylko anonimowego uwierzytelnienia?
Jeśli anonimowy, przejdź do Menedżera IIS, na ikonie Uwierzytelniania wybierz nazwę Anonimowego uwierzytelnienia, a następnie kliknij przycisk Edytuj w Akcje. Sprawdź, który użytkownik jest tam określony i upewnij się, że ma on uprawnienia do plików / folderów serwisu.
Jeśli masz jakąś formę systemu logowania, upewnij się, że zalogowany użytkownik (użytkownicy) mają uprawnienia do plików dla witryny i upewnij się, że identyfikator puli aplikacji, z której korzystasz, ma przynajmniej dostęp do odczytu do plików.
źródło
Domyślnie w usługach IIS 7.5 każda pula aplikacji działa w ramach własnej „tożsamości wirtualnej”. Tożsamość puli aplikacji to poświadczenia używane do uzyskania dostępu do systemu plików.
Nie jestem pewien co do jego mechaniki, ale Microsoft zrobił to, aby zwiększyć bezpieczeństwo domyślnej instalacji, jednocześnie zmniejszając potrzebę tworzenia kont usług w niektórych scenariuszach instalacji. Niezależnie od tego, będziesz musiał zidentyfikować to konto „tożsamość wirtualna” i przyznać mu dostęp do katalogu lub zmienić konto usługi App Pool.
Tożsamości wirtualne puli aplikacji są nazywane „IIS AppPool \”, więc jeśli używasz DefaultAppPool, jego tożsamość to „IIS AppPool \ DefaultAppPool”.
Zobacz ten artykuł, aby uzyskać bardziej szczegółowe informacje.
źródło
Cześć dla mnie w pracy IIS 8: 1) Przejdź do katalogu wirtualnego IIS - 2) Uwierzytelnianie - 3) Uwierzytelnianie anonimowe - 4) Ustaw tożsamość puli aplikacji.
źródło
Ponieważ żadna z powyższych odpowiedzi nie pomogła mi, pomyślałem, że podzielę się tym, jak rozwiązałem ten problem, gdy wpadłem na to na mojej lokalnej maszynie z systemem Windows 7 i IIS7.
Przejdź do IIS7 -> Pule aplikacji
Znajdź pulę aplikacji swojej witryny (w moim przypadku DefaultAppPool), kliknij prawym przyciskiem myszy i wybierz Opcje zaawansowane.
Znajdź rozdział Model procesu i zmień pole Tożsamość na znanego użytkownika, który na pewno ma dostęp do plików w folderze witryny (w moim przypadku lokalny administrator)
źródło
Odpowiadając, aby dołączyć informacje z komentarzy do zaakceptowanej odpowiedzi.
W IIS 7.5 w systemie Windows Server 2008r2 grupa IIS_IUSRS jest już uwzględniona, ale oddzielna grupa IUSR musi być nadal dodana do uprawnień, aby umożliwić dostęp / pobieranie plików.
Aby uzyskać więcej informacji na temat różnic na kontach, zobacz Opis wbudowanych kont użytkowników i kont grup w usługach IIS.
źródło
Spróbuj ... Przejdź do Zarządzanie komputerem (kliknij prawym przyciskiem myszy na moim komputerze i wybierz Zarządzaj) -> Lokalni użytkownicy i grupy -> Użytkownicy -> Wybierz IUSR_MACHINENAME -> Kliknij prawym przyciskiem Właściwości -> Upewnij się, że jest członkiem IIS_WPG oraz użytkowników, a nie gości.
Pracuję z Server 2008 R2 i konto IUser nie jest dostępne na liście.
źródło
Spróbuj zainstalować IIS po stronie klienta,
aspnet_regiis -c
a następnie zresetuj IIS.źródło
Dla użytkowników, których to nie wystarczy:
Mam to do pracy z tym:
Teraz spróbuj odświeżyć swoją stronę.
źródło