FIX: 「 存取被拒 」 當您嘗試從 ASP.NET 存取索引服務,以啟用模擬時,出現錯誤訊息

文章翻譯 文章翻譯
文章編號: 323293 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

當針對索引伺服器搜尋透過 ASP.NET Web 網頁時,可能會收到下列錯誤訊息:
存取被拒。 描述: 目前的 Web 要求的執行過程中發生未處理的例外狀況。請檢閱堆疊追蹤關於該錯誤,以及它發源程式碼中的詳細資訊。

例外狀況詳細資料: System.Data.OleDb.OleDbException: 存取被拒。
只有如果您啟用 ASP.NET Web 應用程式的模擬,且若 ASP.NET 背景工作處理序 (Aspnet_wp.exe) 所執行的安全性內容是 ASPNET 帳戶便被上述這種行為。

解決方案

服務套件資訊

如果要解決這個問題,請取得 Microsoft Windows 2000最新 Service Pack。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
260910如何取得最新的 Windows 2000 Service Pack

其他可行方案

使用下列方法之一如果要解決這個問題:
  • 停用整個的 ASP.NET Web 應用程式的模擬。這是預設設定。
  • 停用特定的.aspx 網頁的索引伺服器搜尋的僅模擬。若要執行此動作將 <location>標籤新增至 Web.config 檔,如下所示:
    <location path="filename.aspx">
    <system.web>
       <identity impersonate="false" />
    </system.web>
    </location>
    					
如果這些因應措施不接受您,可能會變更 ASP.NET 背景工作處理序執行到 SYSTEM 帳戶的安全性內容。不過,Microsoft 建議您不要您設定 ASP.NET 背景工作處理序的安全性內容給 SYSTEM 帳戶,因為 SYSTEM 帳戶是高特殊權限的系統管理員帳戶在 Web 伺服器電腦上。如果沒有其他解決方法是您可以接受,請使用這個因應措施

若要使 ASP.NET 背景工作處理序所執行的安全性內容將 使用者名稱 屬性設定為 SYSTEM,然後將 密碼 屬性設為 [自動產生<processmodel>中 Machine.config 檔的區段。Machine.config 檔位於 C:\ Windows Directory \Microsoft.Net\Framework\v1.0.3705\Config 資料夾中。

狀況說明

Microsoft 已確認這是在 < 適用於 > 一節中所列出的 Microsoft 產品中有錯誤。這個 Bug 已修正在 (隨附於.NET Framework) 的 ASP.NET 1.1。 Microsoft 已確認這是在 Microsoft Windows 2000 中的問題。 這個問題,首先已經在 Microsoft Windows 2000 服務套件 4年中獲得修正。

其他相關資訊

重製行為的步驟

  1. 啟動 Microsoft Visual Studio.NET。
  2. 建立 ASP.NET Web 應用程式。
  3. 將下列程式碼加入.aspx 網頁的 HTML 中:
    <%@ 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. 修改 Web.config 檔,來啟用模擬,如下所示:
    <identity impersonate="true" />
    					
  5. 請確定 Aspnet_wp.exe 背景工作處理序所執行的安全性內容 ASPNET 帳戶。若要這麼做,將 使用者名稱 屬性設定為 機器,然後將 密碼 屬性設定為 自動產生<processmodel>中 Machine.config 檔的區段。

    附註預設情況下,ASP.NET 背景工作處理序設定為受限制的 ASPNET 帳戶安全性內容下執行。
  6. 在您電腦上啟動 「 索引服務。
  7. 建置此應用程式,然後開啟您的瀏覽器的 [.aspx 網頁。請注意您會收到 < 徵狀 > 一節中所列的錯誤訊息。

?考

如在 ASP.NET 中模擬更多有關,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
306158如何在 ASP.NET 應用程式中實作模擬
如 ASP.NET 背景工作處理序識別身份的更多有關,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
317012在 ASP.NET 中的處理程序和要求識別

屬性

文章編號: 323293 - 上次校閱: 2006年7月5日 - 版次: 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 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:323293
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。

提供意見

 

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