C#开发了个Windows Service,设计到了数据库操作(Access),但是启动服务时,
提示“本地计算机上的**服务启动后又停止了,一些服务自动停止,如果他们没有什么可以做的,。。”,这是怎么回事?
我将与数据库交互的代码注释掉,则可以正常启动服务。
还有另一种情况,我在这个Windows Service项目中引用了其他的项目或dll,也会发生这个问题。这是怎么回事啊?

解决方案 »

  1.   

    实际上是遇错停止。
    检查事件查看器中的服务有关的日志。更详细的错误情况,应该在代码行中插入主动日志语句,StreamWriter到一个文本文件即可,借此分析异常原因。
      

  2.   

    很大可能是权限问题...Windows Service进程默认由Network Service用户启动,该用户基于安全理由受到安全性限制...尤其是NTFS文件权限,除非授权否则禁止访问...
      

  3.   


    给个建议,不清楚能不能用,因为我都是用sql server的。到 控制面板-〉系统和安全-〉Windows防火墙->允许程序通过防火墙通信->更改设置->允许运行另一程序->然后加入相关的程序~你看看你用到那些数据库程序,都调成允许~
      

  4.   

    再阐述一下,以上的建议在win7下使用~不清楚楼主是什么系统~
      

  5.   

    跟防火墙毫无关系...给你Access文件所在文件夹授予Network Service用户访问权限...或者更改你的Windows Service进程用户...
      

  6.   

    我用的是 XP. 而且我把 Windows 防火墙关了的。 但是还是发生那种情况
      

  7.   


    我用的XP. NTFS   用户是管理员用户
      

  8.   


    serviceProcessInstaller1 的Account 设置为了 LocalSystem
    然后Access文件所在文件夹 把只读去掉,并且增加执行脚本等权限。
    还是不行。
    我找不到 “授予Network Service用户访问权限 ”  我用的XP