windows service 之訪問權限(有NetworkService和LocalSystem的區分)


       最近寫了一個關於從局域網的算機上下載文件的winodws service,最初認為應該沒什么大的問題。通過本地的調試也沒發現問題。但是當我把程序發布后發現服務報錯“訪問路徑被拒絕”,我的第一感覺,肯定是網絡文件夾訪問權限問題。那好吧,就用個最傻的方法把文件夾的權限設置成everyone.但是,我把服務跑起來后發現根本就不理你,還是報同樣的錯誤。難道是下載文件的模塊出錯了?后來我把下載模塊放到一個控制台程序和一個web頁面中,都順利通過。真是搞不懂,后來到網上搜一下看到思歸老大的回復,是 windows service 的帳戶沒有權限訪問網絡資源。於是,我把服務的賬號設置為NetworkService,在調試果然ok了。老大就是老大,厲害!但是又有了新的問題,我的寫服務日志的功能失效了。原因在哪呢?是應為我的原來的service 賬號是LocalSystem,service 可以找到本地文件“C:\DownLoadFileLog.txt", 

復制代碼
  private void AddTextLine(string line)
        {
            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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM