1. 程式人生 > >CS0016: 未能寫入輸出文

CS0016: 未能寫入輸出文

上網查了下資料,終於把問題搞定了,現將解決辦法記錄下:

原因:

前幾天同事給了一個清除系統臨時檔案的bat(批處理)檔案,內容為:

--------------------------------------------------------------------

del /f /s /q %systemdrive%/*.tmp
del /f /s /q %systemdrive%/*._mp
del /f /s /q %systemdrive%/*.log
del /f /s /q %systemdrive%/*.gid
del /f /s /q %systemdrive%/*.chk
del /f /s /q %systemdrive%/*.old
del /f /s /q %systemdrive%/recycled/*.*
del /f /s /q %windir%/*.bak
del /f /s /q %windir%/prefetch/*.*
rd /s /q %windir%/temp & md %windir%/temp
del /f /q %userprofile%/cookies/*.*
del /f /q %userprofile%/recent/*.*
del /f /s /q "%userprofile%/Local Settings/Temporary Internet Files/*.*"
del /f /s /q "%userprofile%/Local Settings/Temp/*.*"
del /f /s /q "%userprofile%/recent/*.*"
echo 清除系統LJ完成!
echo. & pause

-----------------------------------------------------------------------

原 來執行這個bat時會將系統目錄(C:/WINDOWS)下的temp目錄一起刪除,當重新啟動計算機之後,這個目錄又會自動生成。在安裝.net framework時會給temp目錄新增NETWORK SERVICE(對Windows 2003是NETWORK SERVICE,Windows 2000是ASPNET)使用者的完全控制權限,在執行基於.net的web專案時系統會以NETWORK SERVICE使用者身份向temp目錄寫檔案,而新建的temp目錄沒有NETWORK SERVICE的操作許可權,所以會出現這個錯誤。

解決方法:

給系統目錄(C:/WINDOWS)下的temp目錄新增NETWORK SERVICE(對Windows 2003是NETWORK SERVICE,Windows 2000是ASPNET)使用者的完全控制權限。