none
在创建Windows服务应用程序遇到的问题

    问题

  • 本人翻阅了MSDN上面的docs,照着在VS2015建了一个解决方案,替换了服务名称,创建安装程序,成功执行Installutil.exe,但是在net start 服务名称却提示xxx 服务正在启动 .
    xxx 服务无法启动。

    服务没有报告任何错误。

    然后日志也没有写入,这是一部分代码:

    StreamWriter log;
            System.Timers.Timer serverTimer;
            public HostsManagerService()
            {
                InitializeComponent();
            }
    
            protected override void OnStart(string[] args)
            {
                serverTimer = new System.Timers.Timer(10000);
                log = new StreamWriter("C:\\HostsManager\\hmservice.log", true);
                wlog("I", "Service started.");
                serverTimer.Elapsed += time;
                serverTimer.Start();
            }
    
            protected override void OnStop()
            {
                wlog("I", "Service stopped.");
                serverTimer.Stop();
                log.Close();
            }
    
            public void time(Object source, System.Timers.ElapsedEventArgs e)
            {
                wlog("I", "Test");
    
            }
    
            public void wlog(String status, String msg)
            {
                log.WriteLine("[" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + "] [" + status + "] [HostsManagerService] " + msg);
            }

    谢谢!

    2016年1月14日 6:15

全部回复

  • 做服务应用开发,你需要重点关心下面几点:

    • 服务运行的角色,权限
    • 服务需要访问的资源

    所以,你重点要检查你使用的哪个用户启动的服务?这个用户对于你在服务要访问的文件系统是否有权限? 是否需要开启服务的 Interact with desktop 设置?


    Bob Bao

    Do you still use the same Windows 8 LockScreen always? Download Chameleon Win8 App quickly, that changes your LockScreen constantly.
    你是否还在看着一成不变的Windows 8锁屏而烦恼,赶紧下载这个 百变锁屏 应用,让你的锁屏不断地变化起来。

    2016年1月14日 9:07
  • 看看系统的Event log中有什么错误没?
    2016年1月14日 22:26