使用環境:
.NET Framework 2.0 + Microsoft Windows Server 2003 SP1 + IIS6.0
使用過程:
發布網站到一個檔案夾(名稱為WebSite)下,在IIS6.0中設定一個虛擬目錄(名稱為WebSite),然後將其“本地路徑”屬性指向到發布的那個檔案夾。
在 ASP.NET 2.0 的項目中編譯、運行都是成功的,但是按上述情況設定後,訪問網站出現以下兩個錯誤。在網上查了一下資料,得到的解決方案。現將它們收集整理出來。
遇見的錯誤一:
配置錯誤
說明: 在處理向該請求提供服務所需的設定檔時出錯。請檢查下面的特定錯誤詳細資料並適當地修改設定檔。 分析器錯誤資訊: 在應用程式層級之外使用註冊為 allowDefinition='MachineToApplication' 的節是錯誤的。如果在 IIS 中沒有將虛擬目錄配置為應用程式,則可能導致此錯誤。
解決方案:[1]
需要將在IIS6.0 將那個虛擬目錄設定成為應用程式。
步驟如下:
(1)開啟IIS 6.0
(2)選擇“預設Web網站”。
(3)選擇那個虛擬目錄並用右鍵開啟其屬性頁面
(4) 選擇“虛擬目錄”選擇項卡
(5)在該選項卡中的“應用程式設定”屬性旁邊單擊第一項的“建立”,“應用程式名稱”屬性
的值由灰色變成了白色,並自動填寫了它的屬性值。
以上步驟就把該虛擬目錄設定成為應用程式。
遇見的錯誤二:
編譯錯誤
說明: 在編譯向該請求提供服務所需資源的過程中出現錯誤。請檢查下列特定錯誤詳細資料並適當地修改原始碼。
編譯器錯誤資訊: CS0016: 未能寫入輸出檔案“c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/website/2204cb73/26c77319/App_GlobalResources.mcbv6w-k.dll”--“拒絕訪問。 ”
源錯誤:
[沒有相關的源行]
源檔案: 行: 0
顯示詳細的編譯器輸出:
.......(省略)
Microsoft (R) Visual C# 2005 編譯器 版本 8.00.50727.42
用於 Microsoft (R) Windows (R) 2005 Framework 版本 2.0.50727
著作權 (C) Microsoft Corporation 2001-2005。著作權所有,並保留一切權利。
error CS0016: 未能寫入輸出檔案“c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/website/2204cb73/26c77319/App_GlobalResources.mcbv6w-k.dll”--“拒絕訪問。 ”
--------------------------------------------------------------------------------
版本資訊: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42
解決方案:[2]
給系統硬碟的 windows/temp 目錄設定許可權。
解決步驟:
(1)開啟系統硬碟下windows/temp 目錄。
(2)按右鍵該目錄,並選擇屬性。
(3)選擇“安全”選擇項卡,給使用者Network service(如果是win2000則是asp.net使用者)勾上部分許可權。具體為:
1.讀取和運行 2.列出檔案夾目錄 3. 讀取。(如果還是報該錯誤,就再賦其他幾項許可權。: ) )
參考資料:
[1] http://nt.discuz.net/showtopic.aspx?topicid=2735&page=end
[2] http://www.cnblogs.com/lingyun_k/archive/2006/06/02/415494.html