癥狀
如果您使用 Visual Studio .NET 2002 新建 Web 項目,并連接到作為 Web 服務器的 Microsoft Windows Server 2003,則會顯示“Web 訪問失敗”對話框,并且您會收到以下錯誤信息:
The default Web access mode for this project is set to file share, but the project folder at 'http://localhost/WebApplication1' cannot be opened with the path 'c:\inetpub\wwwroot\WebApplication1'.The error returned was:
Unable to create web project 'WebApplication1'.The file path 'c:\inetpub\wwwroot\WebApplication1' does not correspond to the URL 'http://localhost/WebApplication1'.The two need to map to the same server location.HTTP Error 404:Not Found
原因
發生此問題的原因在于:Microsoft Internet 信息服務 6.0 (IIS) 阻止所有未顯式映射的文件擴展名。默認情況下,出于安全原因,未在 IIS 6.0 上映射 .tmp 文件擴展名。
在創建 Web 項目的過程中,Visual Studio .NET 2002 會進行測試以確認 URL 和 UNC 路徑是否匹配。為此,Visual Studio .NET 將文件擴展名為 .tmp 的文件寫到服務器上,然后通過 http 請求從該服務器中請求此文件。因為沒有在 IIS 6.0 上映射 .tmp 文件擴展名,所以 IIS 會返回 HTTP 錯誤 404。這就導致 Visual Studio .NET 返回“癥狀”部分中介紹的錯誤信息。
注意:當您使用 Visual Studio .NET 2003 時不會發生此問題,因為此版本使用文件擴展名為 .htm 的文件執行此過程。
替代方法
解決此問題的辦法有下列三種:
解決辦法 1:
使用 Visual Studio .NET 2003 在 Windows 2003 Server 上創建項目。這是推薦使用的解決辦法。如果生產計算機連接到 Internet,則最好使用此版本,因為映射 .tmp 文件擴展名可能具有安全風險。
解決辦法 2:
如果安全不成問題(例如,如果您使用的是獨立的開發計算機),請執行下列步驟來映射 .tmp 文件擴展名:
啟動 Internet 信息服務 MMC。
右鍵單擊 Web 站點,然后單擊“屬性”。
單擊“HTTP 標題”選項卡,然后單擊“MIME 類型”。
單擊“新建”以添加新的 MIME 類型。
在“擴展名”文本框中,鍵入 .tmp。
在“MIME 類型”文本框中,鍵入 text/plain。
解決辦法 3:
安裝以下 Microsoft 知識庫文章中的修復程序:
831210 FIX:Cannot Create Web Projects on Windows Server 2003
狀態
Microsoft 已經確認這是本文開頭列出的 Microsoft 產品中的錯誤。 正在審查此錯誤的修補程序以便在以后的 Service Pack 版本中發布。
重現問題的步驟
1. 啟動 Visual Studio .NET 2002。在“文件”菜單上,指向“新建”,然后單擊“項目”。
2. 對于項目類型,單擊“ASP.NET Web 應用程序”。
3. 在“位置”文本框中,指定一臺運行 Windows 2003 且沒有映射 .tmp 文件擴展名的計算機。
4. 單擊“確定”。