ASP.NET wdrażanie w Internecie przy użyciu programu Visual Studio: ustawianie uprawnień do folderu
Autor : Tom Dykstra
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/ContosoUniversity
adresu , 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:
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 :
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).
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 .
Kliknij przycisk Edytuj.
W oknie dialogowym Uprawnienia do elmah wybierz pozycję DefaultAppPool, a następnie zaznacz pole wyboru Zapis w kolumnie Zezwalaj .
(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.
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.