我经常使用(据我记得它工作得很好)
public static void Main() {
#if SERVICE
ServiceBase.Run(new MyService());
#else
....
#endif
在服务代码中,因此我可以将其作为控制台运行或注册installutil
并作为服务运行。
但是......自从一些更新或切换到4.5.1(甚至可能在发布版本中)它再也不起作用了。每当我使用installutil
或只是作为控制台运行时,它都使用控制台代码,例如不适用于SERVICE
而且它失败了,因为我在那里使用Console.ReadKey
并确保服务无法处理它。
也许我做错了什么,还有其他办法吗?
答案 0 :(得分:2)
...所以我可以将它作为控制台运行或使用installutil注册并作为服务运行
这还不够。 #if SERVICE
是编译时条件,根据您的运行方式,它不能产生不同的行为。它需要不同的Build配置。
我的猜测是你在升级后丢失了一件工具或忘记了某种习惯。