2016-12-07 174 views
0

我使用visual studio创建了一个服务,并使用visual studio命令提示符安装它。它工作正常Windows服务无法正常工作

但现在我想使用Visual Studio安装程序安装相同的服务。我已经按照这个link创建了一个安装程序。安装程序会正确安装该服务,因为它不会引发任何错误或异常。但是当我从服务列表启动服务时,服务确实启动,但不会写入日志文件。所以任何人都可以帮助我,并告诉为什么服务在使用命令提示安装时表现良好,但通过安装程序安装时会导致问题。

protected override void OnStart(string[] args) 
{ 
    timer1 = new Timer(); 
    this.timer1.Interval = 5000; 
    this.timer1.Elapsed += new System.Timers.ElapsedEventHandler(this.timer1_tick); 
    timer1.Enabled = true; 
    Library.WriteErrorLog("service started!"); 
} 

private void timer1_tick(object sender, ElapsedEventArgs e) 
{ 
    Library.WriteErrorLog("Timer ticked succesfully"); 
} 

protected override void OnStop() 
{ 
    timer1.Enabled = false; 
    Library.WriteErrorLog("Service Stopped!"); 
} 
+0

尝试调试您的服务,解释[这里](http://stackoverflow.com/a/126016/1630056) – Pan

+0

您是否安装服务作为用户,本地服务或网络服务运行? –

+0

@SimonPrice作为本地服务,也尝试作为本地系统 –

回答

0

您是否检查过该服务有权写入日志文件?

检查目录的权限,转到日志文件夹 - 属性和安全选项卡。

服务通常在没有对Windows文件系统的写入访问权的情况下运行。

+0

通过命令提示符安装时,它工作正常 –

+0

通过命令提示符安装时,用户在使用安装程序时与用户不同吗? IE使用任务管理器用户名列?你也看到服务在运行服务时运行,msc在开始菜单的运行框中? –

+0

是状态正在运行。和用户是一样的 –

0

安装之前请检查所有路径和目录。有时会选择错误的目录。