• 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

  • 相关阅读:
    插入排序
    选择排序
    二分法查找
    pickle模块的使用
    循环和递归求阶乘、递归实现汉诺塔程序、递归实现拆出每个位的数字放在列表中、递归求第五个人的年龄
    app测试和测试基础
    TCP协议中的三次握手和四次挥手及其他
    AcWing 122 糖果传递
    AcWing 121 赶牛入圈 (二分+离散化)
    AcWing 120 防线 (二分)
  • 原文地址:https://www.cnblogs.com/findumars/p/6147960.html
Copyright © 2020-2023  润新知