FIX: 無法編譯使用 UNC 共用的 src 屬性的程式碼後置檔案

文章翻譯 文章翻譯
文章編號: 313105 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
全部展開 | 全部摺疊

在此頁中

徵狀

當您編譯 Web 表單,編譯可能會在 ASP.NET 中,失敗而可能會收到下列錯誤訊息 (或類似):
編譯器錯誤訊息: CS2001: 原始程式檔
找不到 '\\server\sharename\webform1.aspx.cs'。
如果下列情況成立,就可能發生這個錯誤:
  • 程式碼後置模型正在使用中。
  • 頁面會使用動態編譯與 Src] 屬性並 Src 屬性會指向遠端電腦使用一個通用命名慣例 (UNC) 上的檔案共用。
  • 在 Web.config 檔中啟用模擬。

發生的原因

之所以發生這個問題,是因為編譯器啟動背景工作處理序身分,且背景工作處理序可能無法讀取遠端共享。因為 ASP.NET 會使用模擬語彙基元 (Token) 來閱讀頁,ASP.NET 就會順利讀取頁面。

解決方案

如果要解決這個問題,使用下列方法之一:
  • 用於背景工作處理序帳戶可讓共用存取。如果您使用的系統帳戶或網路服務,您可以提供存取給電腦帳戶。

    如果要讓電腦帳戶存取,請依照下列步驟執行:
    1. 共用] 上按一下滑鼠右鍵,然後按一下 [內容]。
    2. 在 [共用] 索引標籤上按一下 [權限,然後按一下 [新增]。
    3. 輸入的 Web 伺服器的名稱,然後按一下 [檢查名稱]。這會顯示在此共用的 [權限] 對話方塊的 共用權限] 下的 $ machinename。
  • 使用先行編譯動態連結程式庫 (DLL) 而不是動態編譯的程式碼後置檔案。
  • 使用單一分頁檔案,而不是程式碼後置檔案。
  • 以可存取共用的帳戶執行背景工作處理序。若要設定這,使用 [使用者名稱和密碼屬性,Machine.config 檔 processModel 元素的]。

狀況說明

Microsoft 已確認這是在本文開頭所列之 Microsoft 產品中的有錯誤。這個 Bug 已修正在 (隨附於.NET Framework) 的 ASP.NET 1.1 和.NET Framework 1.1 版。

其他相關資訊

重製行為的步驟

  1. 建立名為 Webform1.aspx.aspx 網頁。
  2. 使用其中一個下列的範例頁面指示詞:
    <%@ Page language="c#"  Codebehind="WebForm1.aspx.cs"  Src = "WebForm1.aspx.cs" %>
    					
    -或者-
    <%@ Page language="vb"  Codebehind="WebForm1.aspx.vb"  Src = "WebForm1.aspx.vb" %>
    					
  3. 建立程式碼後置的網頁並根據您在步驟 2 中選擇了,請在頁面指示詞來命名。
  4. 將網域使用者 (網域 \ 使用者) 以系統管理員的身分新增至電腦。
  5. 建立一個共用,然後賦予的權限給網域使用者。
  6. 在 [網際網路服務管理員,建立 Microsoft 網際網路資訊伺服器 (IIS) 應用程式,然後再使用網域 \ 使用者,對於連接-為。
  7. 指到您先前建立之共用應用程式中建立虛擬目錄。
  8. 將 [WebForm1.aspx 和程式碼後置檔案移到共用。
  9. 建立新的 Web.config 檔案並再加入下列程式碼:
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <system.web>
        <authentication mode="Windows" />
        <identity impersonate="true" userName="domain\user" password="password" /> 
     </system.web>
    </configuration>
    					
  10. 將 Web.config 檔複製到 Web 應用程式將檔案加入至 IIS 應用程式虛擬目錄。
  11. 瀏覽至頁面。

屬性

文章編號: 313105 - 上次校閱: 2014年2月24日 - 版次: 2.3
這篇文章中的資訊適用於:
  • Microsoft ASP.NET 1.0
  • Microsoft .NET Framework 1.0
關鍵字:?
kbnosurvey kbarchive kbmt kbfix kbbug kbconfig kbdeployment kbnofix kbreadme kbsecurity kbweb KB313105 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:313105
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