ASP.NET nasazení webu pomocí sady Visual Studio: Nastavení oprávnění ke složce
V této sérii kurzů se dozvíte, jak pomocí sady Visual Studio 2012 nebo Visual Studio 2010 nasadit (publikovat) ASP.NET webovou aplikaci do Azure App Service Web Apps nebo u poskytovatele hostingu třetí strany. Informace o této sérii najdete v prvním kurzu této série.
Přehled
V tomto kurzu nastavíte oprávnění ke složce Elmah na nasazené webové stránce tak, aby aplikace v této složce vytvořila soubory protokolu.
Při testování webové aplikace v sadě Visual Studio pomocí Visual Studio Development Server (Cassini) nebo IIS Express aplikace běží pod vaší identitou. S největší pravděpodobností jste správcem na vývojovém počítači a máte plnou oprávnění udělat cokoli s libovolným souborem v jakékoli složce. Když ale aplikace běží ve službě IIS, běží pod identitou definovanou pro fond aplikací, ke kterému je web přiřazený. Obvykle se jedná o účet definovaný systémem, který má omezená oprávnění. Ve výchozím nastavení má oprávnění ke čtení a spouštění souborů a složek webové aplikace, ale nemá oprávnění k zápisu.
To se stává problémem, pokud vaše aplikace vytváří nebo aktualizuje soubory, což je běžná potřeba webových aplikací. V aplikaci Contoso University vytvoří Elmah soubory XML ve složce Elmah , aby se uložily podrobnosti o chybách. I když nepoužíváte něco jako Elmah, může váš web uživatelům umožnit nahrávat soubory nebo provádět jiné úlohy, které zapisují data do složky na vašem webu.
Připomenutí: Pokud se vám při procházení kurzu zobrazí chybová zpráva nebo něco nefunguje, nezapomeňte se podívat na stránku pro řešení potíží.
Protokolování a hlášení chyb testování
Pokud chcete zjistit, jak aplikace nefunguje správně ve službě IIS (i když to udělala, když jste ji otestovali v sadě Visual Studio), můžete způsobit chybu, kterou by normálně protokolovala Elmah, a pak otevřít protokol chyb Elmah a zobrazit podrobnosti. Pokud se Elmah nepodařilo vytvořit soubor XML a uložit podrobnosti o chybě, zobrazí se prázdná zpráva o chybě.
Otevřete prohlížeč, přejděte na http://localhost/ContosoUniversity
a pak vyžádejte neplatnou adresu URL, jako je Studentsxxx.aspx. Místo stránky GenericErrorPage.aspx se zobrazí systémově vygenerovaná chybová stránka, protože customErrors
nastavení v souboru Web.config je RemoteOnly a službu IIS spouštíte místně:
Teď spusťte elmah.axd a zobrazte zprávu o chybě. Po přihlášení pomocí přihlašovacích údajů účtu správce (admin a devpwd) se zobrazí prázdná stránka protokolu chyb, protože Elmah nemohla ve složce Elmah vytvořit soubor XML:
Nastavení oprávnění k zápisu do složky Elmah
Oprávnění ke složce můžete nastavit ručně nebo ji nastavit jako automatickou součást procesu nasazení. Automatické nastavení vyžaduje složitý kód MSBuild, a protože to musíte udělat pouze při prvním nasazení, postupujte podle následujících kroků ručně. (Informace o tom, jak tuto součást procesu nasazení udělat, najdete v tématu Nastavení oprávnění ke složce na webu publikovat na blogu Sayeda Hashimiho.)
V Průzkumník souborů přejděte do složky C:\inetpub\wwwroot\ContosoUniversity. Klikněte pravým tlačítkem na složku Elmah , vyberte Vlastnosti a pak vyberte kartu Zabezpečení .
Klikněte na Upravit.
V dialogovém okně Permissions for Elmah (Oprávnění pro Elmah ) vyberte DefaultAppPool (Výchozí fond aplikací) a potom zaškrtněte políčko Write (Zapisovat ) ve sloupci Allow ( Povolit ).
(Pokud v seznamu Skupin nebo uživatelských jmen nevidíte DefaultAppPool, pravděpodobně jste k nastavení služby IIS a ASP.NET 4 v počítači použili jinou metodu než metodu uvedenou v tomto kurzu. V takovém případě zjistěte, jakou identitu používá fond aplikací přiřazený k aplikaci Contoso University, a udělte této identitě oprávnění k zápisu. Projděte si odkazy na identity fondů aplikací na konci tohoto kurzu.) V obou dialogových oknech klikněte na OK.
Opětovné testování protokolování a hlášení chyb
Otestujte tak, že stejným způsobem znovu způsobíte chybu (vyžádejte si chybnou adresu URL) a spusťte stránku Protokol chyb . Tentokrát se chyba zobrazí na stránce.
Souhrn
Dokončili jste všechny úkoly potřebné k tomu, aby Contoso University správně fungovala ve službě IIS na místním počítači. V dalším kurzu web veřejně zpřístupníte tak, že ho nasadíte do Azure.
Další informace
V tomto příkladu byl důvod, proč se Elmah nepodařilo uložit soubory protokolu, poměrně zřejmý. Trasování služby IIS můžete použít v případech, kdy příčina problému není tak zjevná. Viz Řešení potíží s neúspěšnými požadavky pomocí trasování ve službě IIS 7 na webu IIS.net.
Další informace o tom, jak udělit oprávnění identitám fondů aplikací, najdete v tématu Identity fondu aplikací a zabezpečený obsah v seznamech ACL systému souborů služby IIS na webu IIS.net.