确定.net windows服务获胜的原因';开始

确定.net windows服务获胜的原因';开始,.net,windows-services,.net,Windows Services,我正在尝试确定为什么我可以在大量机器上成功安装的.Net服务无法在某些机器上启动 当服务在这些机器上启动时,服务立即停止,因此我的假设是用户没有足够的权限安装服务,或者服务存在问题;但是,这两个条件都是错误的(服务可以工作,并且他们有足够的特权) 我应该采取哪些步骤来确定服务无法启动的原因?应用程序事件日志应该包含服务启动期间发生的任何.Net异常的详细信息。这可能有助于诊断问题 或者,您可以将一些调试代码(或跟踪代码)添加到应用程序启动中,并从中使用debugview查看它的运行情况。因此,通

我正在尝试确定为什么我可以在大量机器上成功安装的.Net服务无法在某些机器上启动

当服务在这些机器上启动时,服务立即停止,因此我的假设是用户没有足够的权限安装服务,或者服务存在问题;但是,这两个条件都是错误的(服务可以工作,并且他们有足够的特权)


我应该采取哪些步骤来确定服务无法启动的原因?

应用程序事件日志应该包含服务启动期间发生的任何.Net异常的详细信息。这可能有助于诊断问题


或者,您可以将一些调试代码(或跟踪代码)添加到应用程序启动中,并从中使用debugview查看它的运行情况。

因此,通过查看@Matthew Stiples和@Ben M的事件日志,我发现了这一点

问题是服务连接到服务器时在启动时写入事件日志;但是,此计算机事件日志已满,因此当服务尝试写入事件日志时失败,导致它引发异常,该异常再次无法写入完整事件日志


因此,举个例子,如果您正在写入事件日志,请确保它未满或您正在处理异常

事件查看器->Windows日志->应用程序中查找


这应该显示未捕获的异常。在我的例子中,我希望当前目录是服务EXE的位置,然而,事实证明它实际上是
%WinDir%\System32
,因此我需要修改我的应用程序以获取EXE目录,并在访问文件时使用该目录。

服务消息存储在系统日志中。+1:您也可以将调试器附加到服务并逐步执行。@Ben M:您说得对,服务消息是存储的在事件日志中,.net异常会保存到应用程序日志中,因为它是.net服务,是否安装了正确版本的.net?是的,请参阅我的解决方案的答案Hi-msarchet,StackOverflow遵循QA格式,而不是论坛格式。如果提供的答案足够,最好将其标记为已接受-海报将欣赏声誉积分。同样,为了继续对话,不鼓励为自己的问题添加答案,而赞成编辑原始问题并添加您自己找到的任何解决方案。我想补充一点,这是可以接受的(请原谅双关语)只有在没有其他答案帮助您解决问题时,才添加并接受您自己的答案。实际上,这是一种可接受的做法,提供的答案实际上并不正确,是的,他们将我指向了答案,但不是实际的答案。元员额: