zoukankan      html  css  js  c++  java
  • 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 + " ");

                    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

  • 相关阅读:
    《构建之法》第四章学习笔记
    《深入理解计算机系统》第四章学习笔记
    《构建之法》第三章学习笔记
    《深入理解计算机系统》第三章学习笔记
    《文献管理与信息分析》第二讲学习笔记
    《深入理解计算机系统》第二章学习笔记
    20179223《Linux内核原理与分析》第十二周学习笔记
    《从问题到程序》第三章学习笔记
    51nod1256乘法逆元
    51nod1212无向图最小生成树
  • 原文地址:https://www.cnblogs.com/findumars/p/6147960.html
Copyright © 2011-2022 走看看