我正在尝试确定为什么我可以在多台计算机上成功安装的.Net服务无法在某些计算机上启动。
当在这些机器上启动服务时,服务立即停止,因此我的假设是用户没有足够的权限来安装服务或者服务存在问题;但是,这两个条件都是错误的(服务有效且他们有足够的权限)。
我应该采取哪些步骤来确定服务无法启动的原因?
修改
由于提供了一些答案,我弄清楚出了什么问题,请参阅我的答案,了解我的解决方案。
答案 0 :(得分:6)
应用程序事件日志应包含服务启动期间发生的任何.Net异常的详细信息。这可能有助于诊断问题。
或者,您可以向应用程序启动添加一些调试代码(或跟踪代码),并使用Sysinternals中的debugview查看它到达的位置。
答案 1 :(得分:4)
所以我想出了这一点,感谢查看@Matthew Steeples和@Ben M的事件日志。
问题是服务在连接到服务器时写入事件日志;但是,这台机器事件日志已满,所以当服务尝试写入事件日志时它失败,导致它抛出一个异常,再次无法写入完整的事件日志。
所以,如果您正在写入事件日志,请确保它未满或您正在处理异常!
答案 2 :(得分:0)
查找Event Viewer -> Windows Logs -> Application
这应该显示未捕获的异常。就我而言,我期望当前目录将是服务EXE的位置,但是事实证明它实际上是%WinDir%\System32
,因此我需要修改我的应用程序以获取EXE目录并在访问时使用该目录。文件。