对于使用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
都可以正常运行。
如何更改运行服务的服务帐户会导致模块出现故障?
答案 0 :(得分:0)
Simon Mourier是正确的,问题出在我正在使用的第三方dll内部,并且它正试图访问C:\Users
下的目录。...
在网络服务可以访问的其他路径下重新安装解决了该问题。