癥狀
如果您使用 Visual Studio .NET 2002 新建 Web 項(xiàng)目,并連接到作為 Web 服務(wù)器的 Microsoft Windows Server 2003,則會(huì)顯示“Web 訪問失敗”對(duì)話框,并且您會(huì)收到以下錯(cuò)誤信息:
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
原因
發(fā)生此問題的原因在于:Microsoft Internet 信息服務(wù) 6.0 (IIS) 阻止所有未顯式映射的文件擴(kuò)展名。默認(rèn)情況下,出于安全原因,未在 IIS 6.0 上映射 .tmp 文件擴(kuò)展名。
在創(chuàng)建 Web 項(xiàng)目的過程中,Visual Studio .NET 2002 會(huì)進(jìn)行測(cè)試以確認(rèn) URL 和 UNC 路徑是否匹配。為此,Visual Studio .NET 將文件擴(kuò)展名為 .tmp 的文件寫到服務(wù)器上,然后通過 http 請(qǐng)求從該服務(wù)器中請(qǐng)求此文件。因?yàn)闆]有在 IIS 6.0 上映射 .tmp 文件擴(kuò)展名,所以 IIS 會(huì)返回 HTTP 錯(cuò)誤 404。這就導(dǎo)致 Visual Studio .NET 返回“癥狀”部分中介紹的錯(cuò)誤信息。
注意:當(dāng)您使用 Visual Studio .NET 2003 時(shí)不會(huì)發(fā)生此問題,因?yàn)榇税姹臼褂梦募䲠U(kuò)展名為 .htm 的文件執(zhí)行此過程。
替代方法
解決此問題的辦法有下列三種:
解決辦法 1:
使用 Visual Studio .NET 2003 在 Windows 2003 Server 上創(chuàng)建項(xiàng)目。這是推薦使用的解決辦法。如果生產(chǎn)計(jì)算機(jī)連接到 Internet,則最好使用此版本,因?yàn)橛成?.tmp 文件擴(kuò)展名可能具有安全風(fēng)險(xiǎn)。
解決辦法 2:
如果安全不成問題(例如,如果您使用的是獨(dú)立的開發(fā)計(jì)算機(jī)),請(qǐng)執(zhí)行下列步驟來(lái)映射 .tmp 文件擴(kuò)展名:
啟動(dòng) Internet 信息服務(wù) MMC。
右鍵單擊 Web 站點(diǎn),然后單擊“屬性”。
單擊“HTTP 標(biāo)題”選項(xiàng)卡,然后單擊“MIME 類型”。
單擊“新建”以添加新的 MIME 類型。
在“擴(kuò)展名”文本框中,鍵入 .tmp。
在“MIME 類型”文本框中,鍵入 text/plain。
解決辦法 3:
安裝以下 Microsoft 知識(shí)庫(kù)文章中的修復(fù)程序:
831210 FIX:Cannot Create Web Projects on Windows Server 2003
狀態(tài)
Microsoft 已經(jīng)確認(rèn)這是本文開頭列出的 Microsoft 產(chǎn)品中的錯(cuò)誤。 正在審查此錯(cuò)誤的修補(bǔ)程序以便在以后的 Service Pack 版本中發(fā)布。
重現(xiàn)問題的步驟
1. 啟動(dòng) Visual Studio .NET 2002。在“文件”菜單上,指向“新建”,然后單擊“項(xiàng)目”。
2. 對(duì)于項(xiàng)目類型,單擊“ASP.NET Web 應(yīng)用程序”。
3. 在“位置”文本框中,指定一臺(tái)運(yùn)行 Windows 2003 且沒有映射 .tmp 文件擴(kuò)展名的計(jì)算機(jī)。
4. 單擊“確定”。