在使用Network Service
帐户时(但在使用相同代码的其他计算机上执行此操作时),为什么这个Windows服务没有运行,我有点难过,在事件查看器中收到以下两个后续错误:
Application: MyApplication.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: exception code c0000005, exception address 06F3C67E
Stack:
和
Faulting application name: MyApplication.exe, Version: 1.0.0.0, time stamp: 0x87654321
Faulting module name: ReferencedComLib.dll, Version: 1.0.0.0, time stamp: 0x12345678
Exception code: 0xc0000005
Fault offset: 0x0000c67e
Faulting process ID: 0x148c
Faulting application start time: 0x01d4df2e591220f2
Faulting application path: C:\Program Files (x86)\MyApplication\MyApplication.exe
Faulting module path: C:\Windows\SYSTEM32\ReferencedComLib.dll
Report ID: 9d8df956-4b21-11e9-80c8-00155dc82141
Faulting package full name:
Faulting package-relative application ID:
这似乎表明该服务正在C:\ Windows \ SYSTEM32下寻找ReferencedComLib.dll ...
但是ReferencedComLib.dll实际上位于C:\ Windows \ SysWOW64下 - 它是来自第三方的COM库(他们的安装程序正确地将它安装到SysWOW64中)
然而,在Local System
下运行但是这个错误甚至没有出现,服务运行没有问题 - 这个问题目前只能在一个阶段重现,在所有其他阶段它运行良好的Network Service
。
如何在故障模块中更改运行服务的服务帐户?
Simon Mourier是对的,问题是我正在使用的第三方dll的内部问题,它试图访问C:\Users
下的目录....
在网络服务可以访问的不同路径下重新安装修复了问题。