Udostępnij za pośrednictwem


ASP.NET wdrażanie w Internecie przy użyciu programu Visual Studio: ustawianie uprawnień do folderu

Autor : Tom Dykstra

Pobierz projekt startowy

W tej serii samouczków pokazano, jak wdrożyć (opublikować) aplikację internetową ASP.NET w celu Azure App Service Web Apps lub dostawcy hostingu innej firmy przy użyciu programu Visual Studio 2012 lub Visual Studio 2010. Aby uzyskać informacje o serii, zobacz pierwszy samouczek z serii.

Omówienie

W tym samouczku ustawisz uprawnienia do folderu Elmah we wdrożonej witrynie sieci Web, aby aplikacja mogła tworzyć pliki dziennika w tym folderze.

Podczas testowania aplikacji internetowej w programie Visual Studio przy użyciu programu Visual Studio Development Server (Cassini) lub IIS Express aplikacja jest uruchamiana pod Twoją tożsamością. Najprawdopodobniej jesteś administratorem na komputerze dewelopera i masz pełny uprawnienia do wykonywania dowolnych czynności w dowolnym pliku w dowolnym folderze. Jednak gdy aplikacja działa w ramach usług IIS, działa w ramach tożsamości zdefiniowanej dla puli aplikacji, do której jest przypisana lokacja. Zazwyczaj jest to konto zdefiniowane przez system, które ma ograniczone uprawnienia. Domyślnie ma uprawnienia do odczytu i wykonywania plików i folderów aplikacji internetowej, ale nie ma dostępu do zapisu.

Staje się to problemem, jeśli aplikacja tworzy lub aktualizuje pliki, co jest powszechną potrzebą w aplikacjach internetowych. W aplikacji Contoso University Elmah tworzy pliki XML w folderze Elmah , aby zapisać szczegółowe informacje o błędach. Nawet jeśli nie używasz czegoś takiego jak Elmah, witryna może pozwolić użytkownikom na przekazywanie plików lub wykonywanie innych zadań, które zapisują dane w folderze w witrynie.

Przypomnienie: Jeśli zostanie wyświetlony komunikat o błędzie lub coś nie działa podczas pracy z samouczkiem, pamiętaj, aby sprawdzić stronę rozwiązywania problemów.

Testowanie rejestrowania i raportowania błędów

Aby zobaczyć, jak aplikacja nie działa poprawnie w usługach IIS (mimo że została przetestowana w programie Visual Studio), możesz spowodować błąd, który normalnie zostanie zarejestrowany przez Elmah, a następnie otworzyć dziennik błędów Elmah, aby wyświetlić szczegóły. Jeśli Elmah nie może utworzyć pliku XML i zapisać szczegółów błędu, zostanie wyświetlony pusty raport o błędach.

Otwórz przeglądarkę i przejdź do http://localhost/ContosoUniversityadresu , a następnie zażądaj nieprawidłowego adresu URL, takiego jak Studentsxxx.aspx. Zostanie wyświetlona strona błędu wygenerowana przez system zamiast strony GenericErrorPage.aspx , ponieważ customErrors ustawienie w pliku Web.config to "RemoteOnly", a usługi IIS są uruchomione lokalnie:

Strona błędu HTTP 404

Teraz uruchom plik Elmah.axd , aby wyświetlić raport o błędach. Po zalogowaniu się przy użyciu poświadczeń konta administratora ("admin" i "devpwd") zostanie wyświetlona pusta strona dziennika błędów, ponieważ Elmah nie może utworzyć pliku XML w folderze Elmah :

Pusty dziennik błędów

Ustawianie uprawnień do zapisu w folderze Elmah

Uprawnienia do folderów można ustawić ręcznie lub ustawić jako automatyczną część procesu wdrażania. Automatyczne ustawianie go wymaga złożonego kodu MSBuild i ponieważ trzeba to zrobić tylko przy pierwszym wdrożeniu, następujące kroki, jak to zrobić ręcznie. (Aby uzyskać informacje na temat sposobu tworzenia tej części procesu wdrażania, zobacz Ustawianie uprawnień folderu w publikacji internetowej w blogu Sayed Hashimi).

  1. W Eksplorator plików przejdź do katalogu C:\inetpub\wwwroot\ContosoUniversity. Kliknij prawym przyciskiem myszy folder Elmah , wybierz pozycję Właściwości, a następnie wybierz kartę Zabezpieczenia .

  2. Kliknij przycisk Edytuj.

  3. W oknie dialogowym Uprawnienia do elmah wybierz pozycję DefaultAppPool, a następnie zaznacz pole wyboru Zapis w kolumnie Zezwalaj .

    Uprawnienia do folderu ELMAH

    (Jeśli nie widzisz pozycji DefaultAppPool na liście Nazwy grup lub użytkowników , prawdopodobnie użyto innej metody niż ta określona w tym samouczku w celu skonfigurowania usług IIS i ASP.NET 4 na komputerze. W takim przypadku dowiedz się, jaka tożsamość jest używana przez pulę aplikacji przypisaną do aplikacji Contoso University, i przyznaj uprawnienie do zapisu tej tożsamości. Zobacz linki dotyczące tożsamości puli aplikacji na końcu tego samouczka). Kliknij przycisk OK w obu oknach dialogowych.

Ponowne testowanie rejestrowania błędów i raportowania

Przetestuj, powodując ponownie błąd w taki sam sposób (zażądaj nieprawidłowego adresu URL) i uruchom stronę Dziennik błędów . Tym razem na stronie pojawi się błąd.

Strona dziennika błędów ELMAH

Podsumowanie

Wszystkie zadania niezbędne do poprawnego działania platformy Contoso University w usługach IIS na komputerze lokalnym zostały wykonane. W następnym samouczku udostępnisz witrynę publicznie, wdrażając ją na platformie Azure.

Więcej informacji

W tym przykładzie przyczyna niemożności zapisania plików dziennika przez Elmah była dość oczywista. Śledzenie usług IIS można używać w przypadkach, gdy przyczyna problemu nie jest tak oczywista; Zobacz Rozwiązywanie problemów z żądaniami niepowodzenia przy użyciu śledzenia w usługach IIS 7 w witrynie IIS.net.

Aby uzyskać więcej informacji na temat udzielania uprawnień do tożsamości puli aplikacji, zobacz Tożsamości puli aplikacji i bezpieczna zawartość w usługach IIS za pośrednictwem list ACL systemu plików w witrynie IIS.net.