Sdílet prostřednictvím


Nasazení webové aplikace ASP.NET s SQL Server Compact pomocí sady Visual Studio nebo Visual Web Developer: Nastavení oprávnění ke složce – 6 z 12

Tom Dykstra

Stažení úvodního projektu

V této sérii kurzů se dozvíte, jak nasadit (publikovat) projekt ASP.NET webové aplikace, který obsahuje databázi SQL Server Compact, pomocí sady Visual Studio 2012 RC nebo Visual Studio Express 2012 RC pro web. Visual Studio 2010 můžete použít také při instalaci aktualizace publikování webu. Úvod do této řady najdete v prvním kurzu této série.

Kurz, který ukazuje funkce nasazení zavedené po verzi RC sady Visual Studio 2012, ukazuje, jak nasadit SQL Server edice jiné než SQL Server Compact a jak nasadit do Azure App Service Web Apps, najdete v tématu ASP.NET Nasazení webu pomocí sady Visual Studio.

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.

Když testujete webovou aplikaci v sadě Visual Studio pomocí visual studio development serveru (Cassini), 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íží.

Testování protokolování a generování sestav chyb

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/ContosoUniversitya 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ě:

Error_page_Test

Teď spusťte elmah.axd a zobrazte zprávu o chybě. Zobrazí se prázdná stránka protokolu chyb, protože Se službě Elmah se nepodařilo vytvořit soubor XML ve složce Elmah :

Error_log_page_empty

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í, tento kurz ukazuje, jak to udělat 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íkovi Windows 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í .

Elmah_folder_Properties_Security_tab

(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.)

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 ).

Permissions_for_Elmah_dialog_box

V obou dialogových oknech klikněte na OK .

Opětovné testování protokolování a generování sestav 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.

Elmah_Error_Log_page_Test

Potřebujete také oprávnění k zápisu do složky App_Data, protože v této složce máte SQL Server Compact databázové soubory a chcete mít možnost aktualizovat data v těchto databázích. V takovém případě ale nemusíte dělat nic navíc, protože proces nasazení automaticky nastaví oprávnění k zápisu do složky App_Data .

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 u poskytovatele hostingu.

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.