昨天把做完的網站發布到虛擬主機中出現下邊的錯誤耽誤了半天才弄好
error CS2001: Source file ‘C:\WINDOWS\TEMP\wctb6cvw.0.cs’ could not be found
error CS2008: No inputs specified
該站是asp的程序使用的.net urlrewrite做的偽靜態,系統重裝后一直報這樣的錯誤,網上說是要給temp目錄加上network services賬戶的權限,測試不能通過,實際需要加上當前iis站點使用的賬戶,或者增加users用戶組對該目錄的權限,才能正常運行,但是如果是虛擬主機用戶就無法這樣操作。
搜索一下發現有個人提供了另外一種解決方法:
首先在你的站點下建立一個目錄名字隨便取,我們取temp,
然后查詢到temp的物理路徑,自己寫程序就可以查詢出來了,我們的是(d:\webroot\xxxx.com\wwwroot\temp)
然后配置web.config文件,增加<compilation tempDirectory=”d:\webroot\xxxx.com\wwwroot\temp” />如果你的文件里已經有 這個節點compilation,你只需要為這個節點增加tempDirectory屬性,保存即可
但是Web服務的序列化代碼會被解析到系統環境的(TEMP也許是TMP)臨時文件夾,因此你需要創建global.asax文件並且在Application_Start中添加如下代碼:
Environment.SetEnvironmentVariable(“TEMP”,”d:\webroot\xxxx.com\wwwroot\temp”);
Environment.SetEnvironmentVariable(“TMP”,”d:\webroot\xxxx.com\wwwroot\temp”);
保存即可。
這個問題解決完后又出現一個問題,MVC4的路由在iis6上失效,就是只敲域名出現403沒有權限瀏覽;需要指定默認頁/Views/控制器名稱/Index.cshtml