文章編號: 827190 - 上次校閱: 2006年10月16日 - 版次: 3.2

PRB: 「 /ApplicationName 應用程式中的伺服器錯誤 」 錯誤訊息當 ASP.NET 應用程式使用模擬

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。

在此頁中

全部展開 | 全部摺疊

徵狀

當您 Microsoft.NET Framework 1.0 版升級為版本 1.1,並再執行 Microsoft ASP.NET 應用程式模擬的帳戶來存取 Microsoft Access 資料庫,您可能會收到下列錯誤訊息:
伺服器錯誤 '/ ApplicationName' 應用程式。

未指定的錯誤

描述: 目前的 Web 要求執行期間發生未處理的例外狀況。請檢閱堆疊追蹤關於該錯誤,以及它發源程式碼中的詳細資訊。

例外狀況詳細資料: System.Data.OleDb.OleDbException: 未指定錯誤

發生的原因

在.NET Framework 1.0 ASP.NET 應用程式會使用 TEMP 環境變數所指定來儲存暫存檔案的資料夾。在.NET Framework 1.1 ASP.NET 應用程式會使用本機 ASPNET 帳戶的 [設定檔] 資料夾,寫入暫存檔案。這個設定檔資料夾是 C:\Documents 和 Settings\ ServerName \ASPNET\TEMP。將 ASPNET 帳戶具有此資料夾的寫入權的權限。

不過,如果 ASP.NET 應用程式所使用的模擬要模擬的帳戶可能沒有寫入暫存檔案到這個資料夾的權限。因此,當 Web 伺服器升級為.NET Framework 1.1,應用程式可能會失敗與本文的 < 徵狀 > 一節所述的錯誤訊息。

解決方案

如果要解決這個問題,指派讀取和寫入 C:\Documents 和 Settings\ ServerName] \ASPNET 資料夾上模擬的帳戶的權限]。要這麼做,請您執行下列步驟:
  1. 在 [Windows 檔案總管尋找 C:\Document settings\ ServerName \ASPNET\local 設定資料夾。
  2. 用滑鼠右鍵按一下 Temp 資料夾。
  3. 按一下 [內容],然後按一下 [安全性]。
  4. 按一下 [新增],並在 [選取使用者] 或 [群組] 方塊中輸入 ServerName \ASPNET 然後按一下 [確定]]。
  5. 請確定已選取 [完全控制] 核取方塊,然後再按一下 [確定]

狀況說明

這種行為是經過設計規劃的。

其他相關資訊

建立新的 ASP.NET Web 應用程式

  1. 啟動 Microsoft Visual Studio.NET。
  2. 藉由使用 Microsoft Visual C#.NET 或 Microsoft Visual Basic.NET 中建立新的 ASP.NET Web 應用程式。為專案的名稱作為 WebApp1。根據預設值,WebForm1.aspx,即建立。
  3. 連按兩下 WebForm1.aspx。程式碼後置頁面會隨即顯示。
  4. 將下列命名空間參考加入程式碼後置類別檔案開頭:

    Visual C#.NET 代碼
    using System.Data.OleDb;
    Visual Basic.NET 程式碼
    Imports System.Data.OleDb
  5. 使用下列程式碼取代 Page_Load 事件處理常式:

    Visual C#.NET 代碼
    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 程式碼
    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
    
    注意 修改 connectString 變數的程式碼,以指向 [北風資料庫的位置開頭。

設定模擬

  1. 在 [方案總管中連按兩下 Web.config 檔]。
  2. <System.web> 下 區段中,加入下列項目的項目,為模擬:
    <identity impersonate="true" />
  3. 儲存並關閉 Web.config 檔。

執行 ASP.NET 1.0 應用程式

在 [建置] 功能表上按一下 [開始]。

從.NET Framework 1.0 到.NET Framework 1.1 升級

下載並安裝.NET Framework 1.1,請造訪下列 Microsoft 網站]:
http://msdn2.microsoft.com/en-us/netframework/aa731542.aspx (http://msdn2.microsoft.com/en-us/netframework/aa731542.aspx)

執行 ASP.NET 1.1 應用程式

若要執行 WebApp1 應用程式,請在 Microsoft Internet Explorer 中輸入下列 URL:
http://locahost/WebApp1/WebForm1.aspx
您可能會看到本文的 < 徵狀 > 一節所述的錯誤訊息。

?考

如需詳細資訊按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中發行項]:
306158? (http://support.microsoft.com/kb/306158/ ) 資訊: 在 ASP.NET 應用程式中實作模擬

317012? (http://support.microsoft.com/kb/317012/ ) 在 ASP.NET 中的資訊: 處理程序和要求識別

323293? (http://support.microsoft.com/kb/323293/ ) FIX: 「 存取被拒 」 當您嘗試從 ASP.NET 存取索引服務,以啟用模擬時,出現錯誤訊息

這篇文章中的資訊適用於:
  • Microsoft ASP.NET 1.1
關鍵字:?
kbmt kberrmsg kbwebserver kbconfig kbprb KB827190 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:827190? (http://support.microsoft.com/kb/827190/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。