2012-07-06 14 views
9

Próbuję wdrożyć stronę internetową, którą zbudowałem w mvc3 na serwerze, na którym działa iis7. Udało mi się uruchomić go na iis7 lokalnie na moim laptopie, ale kiedy próbuję umieścić go na serwerze, dostaję błąd odmowy dostępu 403, gdy próbuję dostać się do niego zdalnie i "połączenie przekroczyło limit czasu", kiedy próbuję aby wyświetlić go z samego serwera.IIS7 403 - Odmowa dostępu

Upewniłem się, że mam najnowszą platformę .Net 4 przy użyciu pliku asp_regiis.exe. Próbowałem wielu pule aplikacji, w tym domyślne. Pozwoliłem .net4 isapi. Zmieniłem uprawnienia zezwalające na dostęp z IUSER, SIECI SERWERA, Użytkownicy uwierzytelnieni. Upewniłem się, że domyślna lista dokumentów jest taka sama jak ta na moim laptopie iis7 (która działa dobrze).

Mam również wiele innych witryn (przy użyciu formularzy internetowych, a nie mvc) działa dobrze na serwerze.

Czy to może mieć coś wspólnego ze sposobem, w jaki przekazałem pliki do serwera? Po prostu spakowałem pliki i umieściłem je (i rozpakowałem) na serwerze i skierowałem do utworzonego katalogu.

Czego mi brakuje?

+0

Masz na myśli, że spakowana kopia twojej aplikacji jest jedyną rzeczą, którą ma IIS? – Tyrsius

+0

Przepraszamy za niedokładnie. Rozpakowałem i umieściłem pliki w folderze. – Shattuck

Odpowiedz

14

I wobec tego błędu w zeszłym tygodniu i to może być spowodowane przez wiele rzeczy:

  1. Prawo wersja .NET Framework nie jest zainstalowany lub zarejestrowany asp_regiis.exe
  2. W „runAllManagedModulesForAllRequests” to ustawiona na false w pliku web.config
  3. prawo wersja MVC nie jest zainstalowany na serwerze
  4. masz ignorować trasę, która ignoruje prośby
  5. masz earl y wyjątek w twojej Application_Start i twoja strona nie zaczyna się prawidłowo

Z mojej strony nie pamiętam, aby zmienić wartość mojej ścieżki do katalogu dzienników w web.config na istniejący directoy.

Co można zrobić, aby dowiedzieć się, czy jest to błąd konfiguracji, czy błąd w aplikacji, to utworzenie nowego domyślnego projektu MVC w VS i wdrożenie go w tym samym odstępie czasu.

+0

Te kroki doprowadziły mnie do prawidłowej odpowiedzi. Stało się to mnóstwem różnych rzeczy. Jedną z głównych kwestii było to, że wybrałem odpowiednią pulę aplikacji, ale wybrałem klasyczną zamiast zintegrowaną – Shattuck

+1

Ustawiono wartość "runAllManagedModulesForAllRequests" w pliku web.config. – chamara

1

Musisz się upewnić, że folder, w którym rozpakowałeś pliki, ma odpowiednie uprawnienia. Czy masz również konfigurację uwierzytelniania w tej witrynie?

+0

Zmodyfikowałem uprawnienia tego folderu, ale nie było to pomocne. Ponadto nie jestem pewien, do jakiego uwierzytelnienia się odwołujesz. Jestem całkiem nowy iis – Shattuck

3

Zamiast kompresować aplikację, lepiej będzie, jeśli możesz ją opublikować (w VS, kliknij prawym przyciskiem myszy na projekcie i opublikuj) i po zainstalowaniu na swojej stronie (masz kilka opcji).

Po, dla IIS, wygląda na problem z uwierzytelnieniem. Spróbuj zezwolić na uwierzytelnianie anonimowe. W Menedżerze usług IIS przejdź do witryny sieci Web, kliknij moduł Uwierzytelnianie i włącz opcję "Uwierzytelnianie anonimowe".

Zobaczmy, co stanie się później, nawet jeśli problem "przekroczenia limitu czasu" jest dziwny ... Dla pewności domyślnie jest on wyłączony, aby przeglądać zawartość strony internetowej i wystąpi błąd 403, jeśli próbowałeś to zrobić.

Gdzie umieściłeś swoją aplikację? Czasami może to być problematyczne (aby uzyskać dostęp do konfiguracji), aby umieścić go w określonych folderach, takich jak pliki programów itp. Spróbuj zainstalować go w katalogu głównym, takim jak C: \ witryny internetowe \ MojaAplikacja, aby przetestować bez problemów związanych z uprawnieniami użytkownika.

3

Kilka rzeczy należy sprawdzić.

  1. Czy ustawiłeś katalog, w którym rozpakowałeś swoje pliki jako aplikację w IIS? Czy ta aplikacja działa z .NET 3.5/4.0?

  2. Czy twój rurociąg dla puli aplikacji z uruchomioną aplikacją, którą uruchomiłeś, działa w trybie zintegrowanym lub klasycznym?

Zwykle podczas wdrażania aplikacji MVC, 403 nie jest problemem z uprawnieniami. Mówi ci, że przeglądanie katalogów jest niedozwolone. Dzieje się tak dlatego, że bez żadnej z dwóch powyższych pozycji (lub niestandardowego mapowania wieloznacznego w IIS) serwer WWW nie wie, jak zarządzać routingiem, na podstawie aplikacji MVC.

2
  1. Utwórz nową aplikację internetową MVC 3 z wszystkimi ustawieniami domyślnymi. Uruchom na lokalnym serwerze IIS.
  2. Przenieś aplikację na serwer i dodaj ją jako aplikację.
  3. Test lokalnego dostępu na serwerze (przeglądaj 80 z Menedżera IIS).
  4. Nie strzelaj przy wszystkich uprawnieniach, dopóki nie wykryjesz problemu.
  5. Zobacz mój blog http://blogs.msdn.com/b/rickandy/archive/2011/04/22/test-you-asp-net-mvc-or-webforms-application-on-iis-7-in-30-seconds.aspx
+0

Taka rozmowa za zgodą nie jest najlepszym pomysłem. Dzięki za wgląd! – Shattuck

0

Podczas konfigurowania witryny, masz przetestowane ustawienia IIS klikając związku testowego. Dostałeś dwa zielone kleszcze. Jeśli nie, sprawdź ustawienia uwierzytelniania. ustawienia dostępu do folderów i ustawienia pul aplikacji.

+0

Dzięki za odpowiedź. Okazało się, że jest wiele różnych rzeczy, ale pula aplikacji była jej częścią. – Shattuck

0

Jeśli jest to plik aspx Upewnij się, że strona domyślna została ustawiona w IIS, jeśli nie zainstaluj aplikacji asp.net. Po zainstalowaniu domyślnie zostanie utworzony plik aspx.

Powiązane problemy