2009-04-27 78 views
8

我運行Windows 2003的IIS 6.0,開始出現此錯誤:IIS 6.0和ASP.NET - 無法寫入到輸出文件...目錄名稱是無效

Compiler Error Message: CS0016: Could not write to output file 'c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\7382c13f\ea9b3ff7\App_global.asax.zodyof_q.dll' -- 'The directory name is invalid. '

我已經檢查了所有權限,並且所有內容都是必需的 - 此外,錯誤消息沒有提及權限。我已經試過以下不已:

  • 繼從這個[過時]知識庫文章中說明:http://support.microsoft.com/kb/825791/en-us
  • 修復的.NET Framework v3.5版本的安裝,然後重新啓動
  • 刪除的c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root內容,然後運行iisreset
  • 重新上c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root的權限,然後運行iisreset
  • 重新上c:\WINDOWS\TEMP的權限,然後運行iisreset

有什麼建議?


其他說明/響應:

  • 索引服務被禁用。
+0

如何獲得該文件名? – 2009-04-27 16:52:40

+0

不知道我關注 - 如果這就是你的意思,我將從錯誤頁面複製出來。 – 2009-04-27 17:12:24

+0

這個超級用戶的問題解決了我的問題:http://superuser.com/a/638462/98557 – 2015-01-27 00:14:36

回答

2

使用SysInternals FileMon(或ProcMon,如果你喜歡)看到它真正bit real的真實文件。如果你有一個繁忙的服務器,你可以將它限制爲只監視IIS,儘管我會從所有進程開始,並捕獲幾秒鐘的輸出。

運行之前,請確保IIS已經使用IISRESET /重新啓動,這樣不會從之前緩存錯誤被重置。

瑞安

1

OK,當你修理安裝你的意思ASPNET_REGIIS -u/ASPNET_REGIIS -i?這將修復磁盤權限。

它可能是你virusscanner;如果可以的話,排除你的.net臨時文件夾/ inetpub。

0

我收到了同樣的錯誤。反病毒/安全軟件(McAffee Viruscan Enterprise)阻止Visual Studio工具csc.exe動態編譯代碼並在上面的目錄文件夾中創建實體數據模型dll,該目錄文件夾位於windows目錄文件夾下。 McAffee中有一部分稱爲訪問保護,其中有一條稱爲最大保護的規則,禁止在Windows目錄文件夾中創建可執行文件。只需臨時禁用規則或訪問保護即可成功編譯網站。

2

我運行IIS 7.0/Vista Ultimate/.NET 2.0 Web App時發生同樣的錯誤。我嘗試在網絡服務用戶的臨時文件夾上設置「完全控制」權限(右鍵單擊文件夾c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727,屬性,安全選項卡)並關閉防病毒和UAC,但它沒有幫助。

但是這工作起來很神奇:打開IIS管理器→從右側菜單中選擇「查看應用程序池」→選擇「高級設置」→在「身份」屬性中設置你的用戶名和密碼重新啓動IIS

如果這不工作,檢查另外,你是c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727文件夾的所有者(右擊,屬性,安全選項卡,高級,所有者選項卡)

0

下面是最終的解決方案:)


  1. 首先將ASPNET帳戶的所有權限NETWORK SERVICE帳戶授予「ASP.NET Temporary files」文件夾,以便使用其框架。
    像C:\ windows \ microsoft.net \ framework \ v2.xxx \ ASP.NET臨時文件。

  2. 在TEMP和TEMP的環境變量下檢查爲您的機器配置的臨時文件夾。 對於該文件夾也授予ASPNET帳戶,網絡服務帳戶的所有權限。重置IIS 它應該工作正常。

3
  1. 解決%SystemRoot%下創建一個臨時文件夾,然後將其命名Temp
  2. 將Temp文件夾的完全權限授予.NET Framework 1.0中的aspnet用戶帳戶或.NET Framework 1.1中的NETWORK SERVICE用戶帳戶。
  3. 用鼠標右鍵單擊我的電腦,然後單擊屬性。
  4. 在高級選項卡上,單擊環境變量。
  5. 在系統變量下選擇TEMP變量,然後單擊編輯。
  6. 在變量值框中鍵入%SystemRoot%\TEMP,然後單擊確定。
  7. 重複步驟5和6編輯TMP變量。單擊確定兩次。
  8. 單擊開始,然後單擊運行。

要重置Internet信息服務(IIS),請在命令提示符處鍵入iisreset。

0

從windows server 2003 x64,IIS6,net 4。0,ASP應用程序,我提交了錯誤:\ TEMP是重要的,但我會更新這個答案有:

Compiler Error Message: CS0016: Could not write to output file 'c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\root\7382c13f\ea9b3ff7\App_global.asax.zodyof_q.dll' -- 'The directory name is invalid. '

當我創建的DIR

d:\temp

不知道爲什麼d它被解決只要我知道的原因。

權限的DIR是:

admin full

creator owner special

system full

users read&execute/list/read

沒有特定的IIS用戶權限的定義。

工作遷移到IIS7主機,但認爲這個答案可能對某人有幫助。