Update: Fehlermeldung "Zugriff verweigert" beim Versuch, Indexdienst von ASP.NET mit Identitätswechsel zugreifen aktiviert

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 323293 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Wenn Sie über eine ASP.NET-Seite mit Index Server suchen, erhalten Sie folgende Fehlermeldung:
Der Zugriff wurde verweigert. 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: Zugriff verweigert.
Dieses Verhalten wird beobachtet, nur wenn Aktivieren des Identitätswechsels für die ASP.NET-Webanwendung und der Sicherheitskontext, unter dem der ASP.NET-Arbeitsprozess (aspnet_wp.exe) ausgeführt wird, das ASPNET-Konto ist.

Lösung

Informationen zu Service Packs

Installieren Sie das neueste Service Pack für Microsoft Windows 2000, um dieses Problem zu beheben. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
260910Wie Sie das neueste Service Pack für Windows 2000 erhalten

Abhilfe

Verwenden Sie eines der nachstehenden Verfahren, um dieses Problem zu umgehen:
  • Deaktivieren Sie Identitätswechsel für die gesamte ASP.NET-Webanwendung. Dies ist die Standardeinstellung.
  • Deaktivieren Sie Identitätswechsel nur für die bestimmte ASPX-Seite, die die Indexserver-Suche. <location>Hierzu fügen Sie ein Tag <speicherort> in die Datei Web.config folgendermaßen aus:
    <location path="filename.aspx">
    <system.web>
       <identity impersonate="false" />
    </system.web>
    </location>
    					
Wenn diese Problemumgehungen nicht akzeptabel sind, können Sie den Sicherheitskontext ändern, unter dem der ASP.NET-Arbeitsprozess auf das Systemkonto ausgeführt wird. Microsoft empfiehlt jedoch nicht, dass Sie den Sicherheitskontext des ASP.NET-Workerprozesses auf das Konto SYSTEM, festlegen da das Systemkonto eines hoch privilegierten Administratorkonto auf dem Webservercomputer ist. Verwenden Sie diese Problemumgehung nur , wenn keine der anderen Problemumgehungen akzeptabel sind.

Um den Sicherheitskontext ändern unter dem der ASP.NET-Arbeitsprozess ausgeführt wird, legen Sie das Attribut UserName auf SYSTEM , und legen Sie das Kennwort -Attribut auf Autogenerate in der <processmodel> Abschnitt der Datei Machine.config. Die Datei Machine.config befindet sich im Ordner C:\ Windows Directory \Microsoft.Net\Framework\v1.0.3705\Config.

Status

Microsoft hat bestätigt, dass dies einen Fehler in den Microsoft-Produkten ist, die im Abschnitt "Gilt für" aufgeführt sind.Dieser Fehler wurde behoben in ASP.NET (im Lieferumfang von .NET Framework enthalten) 1.1. Microsoft hat bestätigt, dass es sich hierbei um ein Problem in Microsoft Windows 2000 handelt. Dieses Problem wurde erstmals in Microsoft Windows 2000 Service Pack 4 behoben.

Weitere Informationen

Schritte zum Reproduzieren des Verhaltens

  1. Starten Sie Microsoft Visual Studio .NET.
  2. Erstellen Sie eine ASP.NET-Webanwendung.
  3. Fügen Sie folgenden Code in der HTML-Code einer ASPX-Seite:
    <%@ Page language="c#" %>
    <%
                System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection("provider=msidxs;");
    
                conn.Open();
    
                string Sql = "Select DocTitle, vpath, characterization, rank from Scope(' DEEP TRAVERSAL OF \"C:\\\" ')  where FREETEXT(' \"ticket\" ') order by rank desc";
    
                System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(Sql, conn);
    
                System.Data.DataSet ds = new System.Data.DataSet();
    
                da.Fill(ds, "SearchResults");
                Response.Write("Search Results: <br>");
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
    
                {
    
                            Response.Write("<br>" + ds.Tables[0].Rows[i]["vpath"].ToString());
    
                }
    
    %>
    					
  4. Ändern Sie die Web.config-Datei zum Identitätswechsel wie folgt aktivieren:
    <identity impersonate="true" />
    					
  5. Stellen Sie sicher, dass der Sicherheitskontext, unter dem Aspnet_wp.exe-Workerprozess ausgeführt wird, das ASPNET-Konto ist. Zu diesem Zweck, das Attribut UserName auf Computer festgelegt, und legen Sie das Kennwort -Attribut auf Autogenerate in der <processmodel> Abschnitt der Datei Machine.config.

    Hinweis: Standardmäßig ist der ASP.NET-Workerprozess festgelegt, unter dem Sicherheitskontext des eingeschränkten ASPNET-Konto ausgeführt.
  6. Starten Sie den Indexdienst auf dem Computer.
  7. Erstellen Sie die Anwendung, und öffnen Sie die ASPX-Seite in Ihrem Browser. Beachten Sie, dass die Fehlermeldung angezeigt wird, die im Abschnitt "Problembeschreibung" beschrieben ist.

Informationsquellen

Weitere Informationen zum Identitätswechsel in ASP.NET finden Sie im folgenden Artikel der Microsoft Knowledge Base:
306158Zum Implementieren des Identitätswechsels in einer ASP.NET-Anwendung
Weitere Informationen über die Identität des ASP.NET-Workerprozesses finden Sie im folgenden Artikel der Microsoft Knowledge Base:
317012Prozess- und Anforderungsidentität in ASP.NET

Eigenschaften

Artikel-ID: 323293 - Geändert am: Mittwoch, 5. Juli 2006 - Version: 3.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft ASP.NET 1.0
  • Microsoft Index Server 2.0
  • Microsoft OLE DB Provider for Index Server 3.0
Keywords: 
kbmt kbhotfixserver kbqfe kbwin2ksp4fix kbother kbfix kbbug kbconfig kbnofix kbsecurity KB323293 KbMtde
Maschinell ü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: 323293
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.
Disclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com