Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
door Tom Dykstra
Deze reeks zelfstudies laat zien hoe u een ASP.NET-webtoepassing implementeert (publiceert) naar Azure App Service Web Apps of naar een externe hostingprovider met behulp van Visual Studio 2012 of Visual Studio 2010. Zie de eerste zelfstudie in de reeks voor meer informatie over de reeks.
Overzicht
In deze zelfstudie stelt u mapmachtigingen in voor de Map Elmah op de geïmplementeerde website, zodat de toepassing logboekbestanden in die map kan maken.
Wanneer u een webtoepassing in Visual Studio test met behulp van Visual Studio Development Server (Cassini) of IIS Express, wordt de toepassing uitgevoerd onder uw identiteit. U bent waarschijnlijk een beheerder op uw ontwikkelcomputer en hebt volledige bevoegdheid om alles te doen voor elk bestand in elke map. Maar wanneer een toepassing wordt uitgevoerd onder IIS, wordt deze uitgevoerd onder de identiteit die is gedefinieerd voor de groep van toepassingen waaraan de site is toegewezen. Dit is doorgaans een door het systeem gedefinieerd account met beperkte machtigingen. Standaard heeft het lees- en uitvoermachtigingen voor de bestanden en mappen van uw webtoepassing, maar deze heeft geen schrijftoegang.
Dit wordt een probleem als uw toepassing bestanden maakt of bijwerken, wat een veelvoorkomende behoefte is in webtoepassingen. In de Contoso University-toepassing maakt Elmah XML-bestanden in de map Elmah om details over fouten op te slaan. Zelfs als u iets als Elmah niet gebruikt, kunnen gebruikers op uw site bestanden uploaden of andere taken uitvoeren die gegevens naar een map op uw site schrijven.
Herinnering: Als u een foutbericht krijgt of iets niet werkt terwijl u de zelfstudie doorloopt, controleert u de pagina voor probleemoplossing.
Logboekregistratie en rapportage van fouten testen
Als u wilt zien hoe de toepassing niet correct werkt in IIS (hoewel deze wel is uitgevoerd toen u deze in Visual Studio hebt getest), kunt u een fout veroorzaken die normaal gesproken door Elmah wordt geregistreerd en vervolgens het foutenlogboek van Elmah opent om de details te bekijken. Als Elmah geen XML-bestand kan maken en de foutdetails kan opslaan, ziet u een leeg foutenrapport.
Open een browser en ga naar http://localhost/ContosoUniversityen vraag vervolgens een ongeldige URL aan, zoals Studentsxxx.aspx. U ziet een door het systeem gegenereerde foutpagina in plaats van de GenericErrorPage.aspx pagina, omdat de customErrors instelling in het Web.config-bestand RemoteOnly is en u IIS lokaal uitvoert:
HTTP 404-foutpagina
Voer nu Elmah.axd uit om het foutenrapport weer te geven. Nadat u zich hebt aangemeld met de beheerdersaccountreferenties ('admin' en 'devpwd'), ziet u een lege foutlogboekpagina omdat Elmah geen XML-bestand kan maken in de map Elmah :
Schrijfmachtiging instellen voor de map Elmah
U kunt mapmachtigingen handmatig instellen of u kunt deze een automatisch onderdeel van het implementatieproces maken. Voor het automatiseren is complexe MSBuild-code vereist, en aangezien u dit alleen de eerste keer hoeft te doen wanneer u het implementeert, volgt u deze stappen om het handmatig te doen. (Zie Mapmachtigingen instellen bij de webpublicatie op de blog van Sayed Hashimi voor informatie over hoe u dit onderdeel van het deploymentproces maakt.)
Navigeer in Verkenner naar C:\inetpub\wwwroot\ContosoUniversity. Klik met de rechtermuisknop op de map Elmah , selecteer Eigenschappen en selecteer vervolgens het tabblad Beveiliging .
Klik op Bewerken.
Selecteer In het dialoogvenster Machtigingen voor Elmahde optie DefaultAppPool en schakel vervolgens het selectievakje Schrijven in de kolom Toestaan in.
(Als u DefaultAppPool niet ziet in de lijst met groeps- of gebruikersnamen , hebt u waarschijnlijk een andere methode gebruikt dan de methode die in deze zelfstudie is opgegeven om IIS en ASP.NET 4 op uw computer in te stellen. In dat geval kunt u achterhalen welke identiteit wordt gebruikt door de groep van toepassingen die is toegewezen aan de Contoso University-toepassing en schrijfmachtigingen verlenen aan die identiteit. Zie de koppelingen over identiteiten van toepassingsgroepen aan het einde van deze zelfstudie.) Klik in beide dialoogvensters op OK .
Logboekregistratie en rapportage van fouten opnieuw testen
Test door een fout opnieuw op dezelfde manier te veroorzaken (aanvraag een ongeldige URL) en voer de pagina Foutenlogboek uit. Deze keer wordt de fout weergegeven op de pagina.
Overzicht
U hebt nu alle taken voltooid die nodig zijn om Contoso University correct te laten werken in IIS op uw lokale computer. In de volgende zelfstudie maakt u de site openbaar beschikbaar door deze in Azure te implementeren.
Meer informatie
In dit voorbeeld was de reden waarom Elmah logboekbestanden niet kon opslaan vrij duidelijk. U kunt IIS-tracering gebruiken in gevallen waarin de oorzaak van het probleem niet zo duidelijk is; zie Problemen met mislukte aanvragen oplossen met tracering in IIS 7 op de IIS.net-site.
Zie Identiteiten van toepassingsgroepen en beveiligde inhoud in IIS via bestandssysteem-ACL's op de IIS.net-site voor meer informatie over het verlenen van machtigingen aan identiteiten van toepassingsgroepen.