2011-12-31 10 views
9

Próbuję wdrożyć aplikację ASP.NET MVC 3 do systemu Windows 2008 R2. Uruchomiłem program Web Platform Installer, aby pobrać 3 bitów MVC i podstawowe ustawienia IIS. Stworzyłem nowy folder C: \ Website, a następnie utworzyłem nową stronę internetową i wskazałem jej ten folder.Dlaczego otrzymuję błąd 401.2/Access, który uniemożliwia wdrożenie mojej aplikacji MVC 3 w ramach IIS 7.5?

Widzę, że istnieje nowe wcięcie puli aplikacji, "ApplicationPoolIdentity", które różni się od IIS 6 (i jest "specjalnym" kontem użytkownika, które nie jest tak naprawdę dostępne z karty zabezpieczeń w folderze). Ręcznie przypisałem uprawnienia do folderu C: \ Website, wpisując konto "IIS AppPool \ DefaultAppPool" i nadając je do odczytu & Execute/List folder contents/Read access (konkretnie: folder Traver/plik excute, folder listy/odczyt danych, Czytaj atrybuty, Czytaj rozszerzone atrybuty, Uprawnienia odczytu).

Pula aplikacji dla tej witryny jest skonfigurowana dla v4 struktury .NET, Integrated pipeline.

Uwierzytelnianie IIS "Uwierzytelnianie anonimowe" jest włączone.

Moja strona internetowa ma tryb uwierzytelniania = "Windows" w pliku web.config. Po raz pierwszy użyłem uwierzytelniania systemu Windows. Jeśli ma to znaczenie, serwer WWW jest częścią domeny.

Gdy próbuję uzyskać dostęp do witryny, pojawia się błąd odmowy dostępu, 401.2. Myślałem, że może to być związane z ustawieniem uwierzytelniania systemu Windows, więc zmodyfikowałem web.config i ustaw tryb uwierzytelniania na None. Otrzymuję ten sam błąd.

Po wejściu na stronę internetową, IIS/Authentication i włączeniu Windows Authentication monituje mnie o podanie nazwy użytkownika/hasła. Jeśli wprowadzę swoje dane uwierzytelniające, zadziała. Obawiam się jednak, że działa tylko dlatego, że podszywa się pod mnie na serwerze (i mam dostęp do wszystkiego). Naprawdę nie potrzebuję/nie chcę podszywać się pod witrynę - używam tylko uwierzytelniania systemu Windows, abyśmy nie musieli utrzymywać dwóch zestawów loginów. Witryna sprawdza tylko role, które użytkownik jest członkiem, aby selektywnie wyświetlać/ukrywać zawartość. Strona domyślna na stronie internetowej nie ma ustawionych atrybutów [Authorize] na kontrolerze. jest skonfigurowany w pliku web.config.

Drugie pytanie - dlaczego w ogóle miałbym zostać poproszony o podanie mojej nazwy użytkownika/hasła? Czy wyzwanie/odpowiedź nie wystąpią automatycznie i będą wyświetlane tylko w przypadku niepowodzenia uwierzytelnienia?

Oczywiście jest tu jakaś interakcja, której nie rozumiem, ale nie wiem co. Nie widzę żadnych przydatnych błędów w dzienniku zdarzeń.

Szukałem błędu i próbowałem już niektórych poprawek, na przykład, próbowałem zresetować konfigurację ASP.NET z wiersza poleceń za pomocą: aspnet_regiis -i bez żadnego szczęścia.

Rozwiązane

udało mi się uzyskać tej pracy. W konfiguracji strony znajduje się opcja ".NET Authorization". Zostało to skonfigurowane do odmowy wszystkim anonimowym użytkownikom. Usunąłem tę regułę, a następnie dodałem regułę pozwalającą wszystkim anonimowym użytkownikom. Teraz mogłem trafić na stronę bez logowania. Następnie przeszedłem do uwierzytelnienia IIS i włączono Uwierzytelnianie Windows i wyłączono anonimowe uwierzytelnianie.

Program Internet Explorer przekazuje poświadczenia bez pytania. Firefox pyta o dane uwierzytelniające.Jest to konfiguracja ustawień, aby skonfigurować to:

  • Otwórz Firefox
  • Przejdź do: about: config (i postanawiają kontynuować)
  • Filter dla: network.automatic
  • Dwukrotnie kliknij w sieci .automatic-ntml-auth.trusted-uris
  • Dodaj swoją witrynę (wiele stron może być oddzielonych przecinkami). Dołącz część http: //.

Maszyna, na której testuję, nie ma przeglądarki Chrome, ale wygląda na to, że działa prawidłowo w moim urządzeniu. maszyna.

+1

Jeśli pozwolą ci odpowiedzieć na własne pytanie, przegłosuję twoją decyzję. Rozwiązałem mój problem. –

Odpowiedz

0

Upewnij się, że uprawnienia do systemu plików są prawidłowe. Jeśli próbują usunąć pliki WebMatrix.Data.dll i WebMatrix.WebData.dll zainstalowane w katalogu bin aplikacji - to mi się udało, pamiętam, że miałem te same problemy.

Powiązane problemy