Oprava: "přístup byl odepřen" chybová zpráva při pokusu o přístup k indexové službě z prostředí ASP.NET s zosobnění povoleno

Prohlášení o odmítnutí odpovědnosti pro už nepodporovaný obsah KB

Tento článek byl napsán pro produkty, ke kterým již Microsoft nadále nenabízí podporu. Článek je tedy poskytován „tak, jak je“ a nebude už nadále aktualizován.

Příznaky

Při prohledávání indexu serveru stránky technologie ASP.NET, můžete obdržet následující chybovou zprávu:

Přístup byl odepřen. Popis: Při provádění aktuálního webového požadavku došlo k neošetřené výjimce. Zkontrolujte trasování zásobníku pro další informace o chybě a o jejím původu v kódu.

Podrobnosti o výjimce: System.Data.OleDb.OleDbException: přístup byl odepřen.
Toto chování je zaznamenáno pouze v případě, že povolíte zosobnění pro aplikaci technologie ASP.NET a kontextu zabezpečení, pod kterým běží pracovní proces ASP.NET (Aspnet_wp.exe) je účet ASPNET.

Řešení

Informace o aktualizaci Service pack

Tento problém vyřešíte pomocí nejnovější aktualizace service pack pro systém Microsoft Windows 2000. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
260910 jak získat nejnovější aktualizaci service pack pro systém Windows 2000

Jak potíže obejít

Chcete-li tento problém vyřešit, použijte jednu z následujících metod:

  • Zakážete zosobnění celé ASP.NET webové aplikace. Toto je výchozí nastavení.
  • Zakážete zosobnění pro stránku ASPX konkrétní, která nemá vyhledávací Index Server pouze. Chcete-li to provést, přidejte značku < umístění > souboru Web.config takto:
    <location path="filename.aspx"><system.web>
    <identity impersonate="false" />
    </system.web>
    </location>

Pokud nejsou přijatelné vám tato zástupná řešení, může se změnit kontextu zabezpečení, pod kterým pracovní proces ASP.NET spuštěna pod SYSTÉMOVÝM účtem. Společnost Microsoft však nedoporučuje nastavit kontext zabezpečení pracovního procesu ASP.NET na účet SYSTEM, protože účet SYSTEM je vysoce privilegované účet správce na počítači webového serveru. Použijte toto zástupné řešení pouze v případě, že žádná jiná řešení, jsou pro vás přijatelné.

Chcete-li změnit kontextu zabezpečení, pod kterým ASP.NET pracovní proces spuštěn, nastavit uživatelské jméno atribut do systémua poté nastavte atribut heslo automaticky vytvořit v části < processModel > v souboru Machine.config. Soubor Machine.config je umístěn ve složce \Microsoft.Net\Framework\v1.0.3705\Config C:\Adresáře systému Windows.

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části "Platí pro". Tato chyba byla opravena v technologii ASP.NET (součástí rozhraní.NET Framework) 1.1.
Společnost Microsoft potvrzuje, že se jedná o problém v systému Microsoft Windows 2000.
Tento problém byl poprvé opraven v aktualizaci Microsoft Windows 2000 Service Pack 4.

Další informace

Kroky pro reprodukci chování

  1. Spusťte aplikaci Visual Studio .NET.
  2. Vytvoření webové aplikace technologie ASP.NET.
  3. Přidejte následující kód do kódu HTML stránky ASPX:
    <%@ 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. Upravte soubor Web.config umožňující zosobnění:
    <identity impersonate="true" />
  5. Ujistěte se, že je kontext zabezpečení, pod kterým běží pracovní proces Aspnet_wp.exe účet ASPNET. Chcete-li to provést, nastavte atribut uživatelského jména k počítačia nastavte atribut heslo hodnotu autogenerate v části < processModel > v souboru Machine.config.

    Poznámka: Standardně je nastaven pracovní proces ASP.NET spustit v kontextu zabezpečení s omezeným přístupem účet ASPNET.
  6. Spusťte službu indexování v počítači.
  7. Sestavení aplikace a poté otevřete stránku ASPX v prohlížeči. Všimněte si, že obdržíte chybovou zprávu, která je uvedena v části "Příznaky".

Odkazy

Další informace o zosobnění v technologii ASP.NET klepněte na následující číslo článku databáze Microsoft Knowledge Base:

Jak 306158 Implementace zosobnění v aplikaci ASP.NET

Další informace o identitu pracovního procesu ASP.NET klepněte na následující číslo článku databáze Microsoft Knowledge Base:

317012 zpracování a vyžádání identity v technologii ASP.NET

Vlastnosti

ID článku: 323293 - Poslední kontrola: 16. 1. 2017 - Revize: 1

Váš názor