【问题标题】:C# Service Programming Issue with startingC# 服务编程问题与启动
【发布时间】:2012-11-03 19:58:36
【问题描述】:

我已经编写了一个服务,并在代码中使用 C# 和适当的服务方法等来启动一个服务,它作为服务构建和安装,服务启动正常,但是我没有看到一个进程正在运行并且我也没有看到它写入应该作为输出文件写入的日志。我确实注意到,如果我蛮力并自己单击 exe,它会自动启动,但显然这不是预期的行为。任何想法为什么会发生这种情况?我使用 installutil 安装它并以几种方式启动它(services.msc,net start),它们都没有真正起作用。

提前致谢。

【问题讨论】:

  • C# 服务不在相同的用户上下文中运行。例如,您不能截取用户桌面的屏幕截图,因为您的服务正在运行的桌面会话(我认为是会话 0?)没有 没有桌面可以截取屏幕截图。请注意写入日志文件的方式。参见:stackoverflow.com/questions/858597/… 至于进程,它可能以 SYSTEM 身份运行吗?您是否正在查看任务管理器中的“显示所有用户的进程”?
  • 你能展示你在启动过程中使用的代码吗?即 program.cs 和您的服务的启动过程中的位?

标签: c# service


【解决方案1】:

您是否查看过 Windows 事件日志以查看是否收到消息表明服务已启动?里面有没有错误?如果它说它已启动,并且没有任何错误,则您的服务可能启动正常,但未能执行您想要的操作。

考虑写入事件日志,而不是写入日志文件 - 这是服务的首选行为。 Log4Net 可以帮助解决这个问题,但自己编写并不难。

编写服务也很有用,这样它也可以从命令行启动,用于调试目的。同样,您不必完成所有工作,TopShelf 可以提供帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多