Artikel-ID: 827190 - Geändert am: Montag, 16. Oktober 2006 - Version: 3.2

PRB: Server in /ApplicationName Application "Fehlermeldung" bei eine ASP.NET-Anwendung Identitätswechsel verwendet

SystemtippDieser Artikel bezieht sich auf ein anderes Betriebssystem als das von Ihnen verwendete. Für Sie möglicherweise nicht relevante Artikelinhalte wurden deaktiviert.

Auf dieser Seite

Alles erweitern | Alles schließen

Problembeschreibung

Beim Aktualisieren von Microsoft .NET Framework, Version 1.0 auf Version 1.1, und dann eine Microsoft ASP.NET-Anwendung mit einem imitierten Konto auf der Microsoft Access-Datenbank ausführen, wird möglicherweise die folgende Fehlermeldung:
Serverfehler in ' / ApplicationName ' Application.

Unbekannter Fehler

Beschreibung : bei der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo dieser Fehler im Code verursacht wurde.

Ausnahmedetails : System.Data.OleDb.OleDbException: Unbekannter Fehler

Ursache

ASP.NET-Anwendungen in .NET Framework 1.0, verwenden die TEMP Ordner, das durch die Umgebungsvariablen festgelegt wird, um temporäre Dateien zu speichern. In .NET Framework 1.1 verwenden ASP.NET-Anwendungen den Profilordner für das lokale ASPNET-Konto, um temporäre Dateien zu schreiben. Dieser Profilordner ist c:\Dokumente und Einstellungen\ ServerName \ASPNET\TEMP. Das ASPNET-Konto verfügt Berechtigungen in diesen Ordner schreiben.

Jedoch Wenn die ASP.NET-Anwendung den Identitätswechsel verwendet, kann das Konto, das Annahme der Identität verfügen nicht Berechtigungen, temporäre Dateien in diesen Ordner schreiben. Wenn der Server auf .NET Framework 1.1 aktualisiert wird, kann die Anwendung daher mit der Fehlermeldung fehlschlagen, das im Abschnitt "Problembeschreibung" dieses Artikels beschrieben wird.

Lösung

Um dieses Problem zu beheben, weisen Sie Lese- und Schreiben Sie Berechtigungen für das imitierte Konto auf den Ordner c:\Dokumente und Einstellungen\ ServerName \ASPNET. Gehen Sie hierzu folgendermaßen vor:
  1. Suchen Sie in Windows Explorer den c:\Dokumente Settings\ ServerName \ASPNET\local Einstellungen für Ordner.
  2. Klicken Sie mit der rechten Maustaste auf den Ordner "Temp ".
  3. Klicken Sie auf Eigenschaften , und klicken Sie dann auf Sicherheit .
  4. Klicken Sie auf Hinzufügen , geben Sie ServerName \ASPNET im Feld Benutzer oder Gruppen auswählen und klicken Sie dann auf OK .
  5. Stellen Sie sicher, dass das Kontrollkästchen Vollzugriff aktiviert ist, und klicken Sie dann auf OK .

Status

Es handelt sich hierbei um ein beabsichtigtes Verhalten.

Weitere Informationen

Erstellen einer neuen ASP.NET-Webanwendung

  1. Starten Sie Microsoft Visual Studio .NET.
  2. Mithilfe von Microsoft Visual c# .NET oder Microsoft Visual Basic .NET erstellen Sie eine neue ASP.NET-Webanwendung. Nennen Sie das Projekt als WebApp1 . Standardmäßig wird "WebForm1.aspx" erstellt.
  3. Doppelklicken Sie auf WebForm1.aspx . Der Code-Behind-Seite wird angezeigt.
  4. Fügen Sie den folgenden Namespaceverweis am Anfang der CodeBehind-Klassendatei:

    Visual c# .NET Code
    using System.Data.OleDb;
    Visual Basic .NET Code
    Imports System.Data.OleDb
  5. Ersetzen Sie den Page_Load -Ereignishandler mit dem folgenden Code:

    Visual c# .NET Code
    private void Page_Load(object sender, System.EventArgs e)
    {
    // Use a string variable to hold the ConnectionString property.
     string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;"
    		+ "Data Source=C:\\Program Files\\Microsoft Visual Studio\\VB98\\NWIND.MDB";	
    
    OleDbConnection cn = new OleDbConnection(connectString);
    //Open the connection.
    cn.Open();
    
    // Use a variable to hold the SQL statement.
    string selectString = "SELECT CustomerID, ContactName FROM Customers";
    
    // Create an OleDbCommand object.
    OleDbCommand cmd = new OleDbCommand(selectString,cn);
    
    OleDbDataReader reader = cmd.ExecuteReader();
    
    while(reader.Read())
     {	
      Response.Write(reader["CustomerID"].ToString()+ " : "+reader["ContactName"].ToString()+"<br>");
     }
    // Close the reader and the related connection.
     reader.Close();
     cn.Close();
    }
    
    Visual Basic .NET Code
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'Use a string variable to hold the ConnectionString property.
            Dim connectString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                                        "Data Source=C:\\Program Files\\Microsoft Visual Studio\\VB98\\NWIND.MDB"
         
            Dim cn As OleDbConnection = New OleDbConnection(connectString)
    
            'Open the connection.
            cn.Open()
    
            'Use a variable to hold the SQL statement.
            Dim selectString As String = "SELECT CustomerID, ContactName,  FROM Customers"
           
            Dim cmd As OleDbCommand = New OleDbCommand(selectString, cn)
     
            Dim reader As OleDbDataReader = cmd.ExecuteReader()
    
            While (reader.Read())
                Response.Write(reader("CustomerID").ToString() + " : " + reader("ContactName").ToString() + "<br>")
            End While
    
            'Close the reader and the related connection.
            reader.Close()
            cn.Close()
    
        End Sub
    
    Hinweis: Ändern der ConnectString Variablen am Anfang des Codes, auf den Speicherort der Datenbank Northwind.

Identitätswechsel festlegen

  1. Doppelklicken Sie im Projektmappen-Explorer auf die Datei Web.config.
  2. Unter den <System.web> Abschnitt, fügen Sie das folgende Element für den Identitätswechsel hinzu:
    <identity impersonate="true" />
  3. Speichern Sie und schließen Sie die Datei Web.config.

Ausführen von ASP.NET 1.0-Anwendung

Klicken Sie im Menü Erstellen auf Start .

Aktualisieren von .NET Framework 1.0 auf .NET Framework 1.1

Um download und Installation von .NET Framework 1.1, die folgende Microsoft-Website:
http://msdn2.microsoft.com/en-us/netframework/aa731542.aspx (http://msdn2.microsoft.com/en-us/netframework/aa731542.aspx)

Ausführen von ASP.NET 1.1-Anwendung

Die Anwendung WebApp1 ausführen, geben Sie den folgenden URL in Microsoft Internet Explorer:
http://locahost/WebApp1/WebForm1.aspx
Möglicherweise bemerken Sie die Fehlermeldung, die im Abschnitt "Problembeschreibung" dieses Artikels genannt wird.

Informationsquellen

Weitere Informationen finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:
306158  (http://support.microsoft.com/kb/306158/ ) INFO: Implementierung des Identitätswechsels in einer ASP.NET-Anwendung

317012  (http://support.microsoft.com/kb/317012/ ) INFO: Prozess- und Anforderungsidentität in ASP.NET

323293  (http://support.microsoft.com/kb/323293/ ) Update: Fehlermeldung "Zugriff verweigert" beim Versuch Indexdienst von ASP.NET mit Identitätswechsel aktiviert Zugriff auf

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ASP.NET 1.1
Keywords: 
kbmt kberrmsg kbwebserver kbconfig kbprb KB827190 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 827190  (http://support.microsoft.com/kb/827190/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.