Share via


Bereitstellen einer ASP.NET-Webanwendung mit SQL Server Compact mithilfe von Visual Studio oder Visual Web Developer: Festlegen von Ordnerberechtigungen – 6 von 12

von Tom Dykstra

Starter-Projekt herunterladen

In dieser Reihe von Tutorials erfahren Sie, wie Sie ein ASP.NET Webanwendungsprojekt bereitstellen (veröffentlichen), das eine SQL Server Compact Datenbank mit Visual Studio 2012 RC oder Visual Studio Express 2012 RC für Web enthält. Sie können Visual Studio 2010 auch verwenden, wenn Sie das Web Publish Update installieren. Eine Einführung in die Reihe finden Sie im ersten Tutorial der Reihe.

Ein Tutorial mit Bereitstellungsfeatures, die nach der RC-Version von Visual Studio 2012 eingeführt wurden, zeigt, wie SQL Server anderen Editionen als SQL Server Compact bereitgestellt werden, und das Bereitstellen in Azure App Service Web-Apps wird, finden Sie unter ASP.NET Webbereitstellung mit Visual Studio.

Überblick

In diesem Tutorial legen Sie Ordnerberechtigungen für den Ordner Elmah auf der bereitgestellten Website fest, damit die Anwendung Protokolldateien in diesem Ordner erstellen kann.

Wenn Sie eine Webanwendung in Visual Studio mit dem Visual Studio Development Server (Cassini) testen, wird die Anwendung unter Ihrer Identität ausgeführt. Sie sind höchstwahrscheinlich Administrator auf Ihrem Entwicklungscomputer und haben die volle Autorität, alles mit jeder Datei in einem beliebigen Ordner zu tun. Wenn eine Anwendung jedoch unter IIS ausgeführt wird, wird sie unter der Identität ausgeführt, die für den Anwendungspool definiert ist, dem der Standort zugewiesen ist. Dies ist in der Regel ein systemdefiniertes Konto mit eingeschränkten Berechtigungen. Standardmäßig verfügt es über Lese- und Ausführungsberechtigungen für die Dateien und Ordner Ihrer Webanwendung, verfügt jedoch über keinen Schreibzugriff.

Dies wird zu einem Problem, wenn Ihre Anwendung Dateien erstellt oder aktualisiert, was in Webanwendungen häufig erforderlich ist. In der Contoso University-Anwendung erstellt Elmah XML-Dateien im Ordner Elmah , um Details zu Fehlern zu speichern. Auch wenn Sie nicht so etwas wie Elmah verwenden, können Benutzer dateien hochladen oder andere Aufgaben ausführen, die Daten in einen Ordner auf Ihrer Website schreiben.

Erinnerung: Wenn Sie eine Fehlermeldung erhalten oder etwas nicht funktioniert, während Sie das Tutorial durchlaufen, überprüfen Sie unbedingt die Problembehandlungsseite.

Testen der Fehlerprotokollierung und -berichterstellung

Um zu sehen, wie die Anwendung in IIS nicht ordnungsgemäß funktioniert (obwohl dies beim Testen in Visual Studio der Fall war), können Sie einen Fehler verursachen, der normalerweise von Elmah protokolliert wird, und dann das Elmah-Fehlerprotokoll öffnen, um die Details anzuzeigen. Wenn Elmah keine XML-Datei erstellen und die Fehlerdetails speichern konnte, wird ein leerer Fehlerbericht angezeigt.

Öffnen Sie einen Browser, wechseln Sie zu http://localhost/ContosoUniversity, und fordern Sie dann eine ungültige URL wie Studentsxxx.aspx an. Anstelle der Seite GenericErrorPage.aspx wird eine vom System generierte Fehlerseite angezeigt, da die customErrors Einstellung in der Web.config Datei "RemoteOnly" lautet und Sie IIS lokal ausführen:

Error_page_Test

Führen Sie nun Elmah.axd aus, um den Fehlerbericht anzuzeigen. Es wird eine leere Fehlerprotokollseite angezeigt, da Elmah keine XML-Datei im Ordner Elmah erstellen konnte:

Error_log_page_empty

Festlegen der Schreibberechtigung für den Elmah-Ordner

Sie können Ordnerberechtigungen manuell festlegen oder sie zu einem automatischen Teil des Bereitstellungsprozesses machen. Die Automatische Ausführung erfordert komplexen MSBuild-Code, und da Sie dies nur bei der ersten Bereitstellung tun müssen, wird in diesem Tutorial nur gezeigt, wie Sie dies manuell tun. (Informationen dazu, wie Sie diesen Teil des Bereitstellungsprozesses machen, finden Sie unter Festlegen von Ordnerberechtigungen für die Webveröffentlichung im Blog von Sayed Hashimi.)

Navigieren Sie in Windows Explorer zu C:\inetpub\wwwroot\ContosoUniversity. Klicken Sie mit der rechten Maustaste auf den Ordner Elmah , wählen Sie Eigenschaften und dann die Registerkarte Sicherheit aus.

Elmah_folder_Properties_Security_tab

(Wenn DefaultAppPool in der Liste Gruppen- oder Benutzernamen nicht angezeigt wird, haben Sie wahrscheinlich eine andere Methode als die in diesem Tutorial angegebene verwendet, um IIS und ASP.NET 4 auf Ihrem Computer einzurichten. Ermitteln Sie in diesem Fall, welche Identität vom Anwendungspool verwendet wird, der der Contoso University-Anwendung zugewiesen ist, und erteilen Sie dieser Identität Schreibberechtigungen. Sehen Sie sich die Links zu Anwendungspoolidentitäten am Ende dieses Tutorials an.)

Klicken Sie auf Bearbeiten. Wählen Sie im Dialogfeld Berechtigungen für Elmah die Option DefaultAppPool und dann das Kontrollkästchen Schreiben in der Spalte Zulassen aus.

Permissions_for_Elmah_dialog_box

Klicken Sie in beiden Dialogfeldern auf OK .

Erneutes Testen der Fehlerprotokollierung und -berichterstellung

Testen Sie, indem Sie erneut einen Fehler auf die gleiche Weise verursachen (fordern Sie eine ungültige URL an), und führen Sie die Seite Fehlerprotokoll aus . Dieses Mal wird der Fehler auf der Seite angezeigt.

Elmah_Error_Log_page_Test

Sie benötigen auch die Schreibberechtigung für den ordner App_Data, da Sie SQL Server Compact Datenbankdateien in diesem Ordner haben und Daten in diesen Datenbanken aktualisieren möchten. In diesem Fall müssen Sie jedoch keine zusätzlichen Schritte unternehmen, da der Bereitstellungsprozess automatisch schreibberechtigungen für den ordner App_Data festlegt.

Sie haben nun alle erforderlichen Aufgaben abgeschlossen, damit die Contoso University in IIS auf Ihrem lokalen Computer ordnungsgemäß funktioniert. Im nächsten Tutorial stellen Sie die Website öffentlich zur Verfügung, indem Sie sie für einen Hostinganbieter bereitstellen.

Weitere Informationen

In diesem Beispiel war der Grund, warum Elmah keine Protokolldateien speichern konnte, ziemlich offensichtlich. Sie können die IIS-Ablaufverfolgung in Fällen verwenden, in denen die Ursache des Problems nicht so offensichtlich ist. Weitere Informationen finden Sie unter Problembehandlung bei fehlerhaften Anforderungen mithilfe der Ablaufverfolgung in IIS 7 auf der IIS.net-Website.

Weitere Informationen zum Erteilen von Berechtigungen für Anwendungspoolidentitäten finden Sie unter Anwendungspoolidentitäten und sichere Inhalte in IIS über Dateisystem-ACLs auf der IIS.net Website.