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

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

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 323293 – Letzte Überarbeitung: 07/05/2006 15:50:24 – Revision: 3.1

Microsoft ASP.NET 1.0, Microsoft Index Server 2.0, Microsoft OLE DB Provider for Index Server 3.0

  • kbmt kbhotfixserver kbqfe kbwin2ksp4fix kbother kbfix kbbug kbconfig kbnofix kbsecurity KB323293 KbMtde
Feedback