最近寫了一個關於從局域網的算機上下載文件的winodws service,最初認為應該沒什么大的問題。通過本地的調試也沒發現問題。但是當我把程序發布后發現服務報錯“訪問路徑被拒絕”,我的第一感覺,肯定是網絡文件夾訪問權限問題。那好吧,就用個最傻的方法把文件夾的權限設置成everyone.但是,我把服務跑起來后發現根本就不理你,還是報同樣的錯誤。難道是下載文件的模塊出錯了?后來我把下載模塊放到一個控制台程序和一個web頁面中,都順利通過。真是搞不懂,后來到網上搜一下看到思歸老大的回復,是 windows service 的帳戶沒有權限訪問網絡資源。於是,我把服務的賬號設置為NetworkService,在調試果然ok了。老大就是老大,厲害!但是又有了新的問題,我的寫服務日志的功能失效了。原因在哪呢?是應為我的原來的service 賬號是LocalSystem,service 可以找到本地文件“C:\DownLoadFileLog.txt",
{
try
{
FileStream fs = new FileStream(@"C:\DownLoadFileLog.txt", FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter m_streamWriter = new StreamWriter(fs);
m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);
m_streamWriter.WriteLine(line + "\r\n");
m_streamWriter.Flush();
m_streamWriter.Close();
fs.Close();
}
catch (Exception ex)
{
}
}
而現在我把它改為NetworkService,它當然不知道C:\DownLoadFileLog.txt 在那里了。那把它改成你的網絡目錄並設置為共享就ok了!
如”//192.168.8.188/share/DownLoadFileLog.txt/“。
http://www.cnblogs.com/peak-weng/archive/2008/07/29/1255485.html