服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

Windows服务限制在启动时崩溃服务

我们已经在C#中开发了一个自定义Windows服务,作为大型企业应用程序的一部分。 我们的QA部门testing此服务的多个版本。 质量检查实验室在一个Windows 2003testing盒上安装了该服务的几个(超过20个)副本。 虽然每个可执行文件名称相同(例如OurWindowsService.exe),但每个副本都位于其自己的文件夹中,并且具有唯一的服务名称。 每个服务使用相同的Windows凭据(域用户)。 此服务的目的是处理MSMQ消息。 排队的消息做各种重要的东西。 由于某些原因,他们一次只能运行其中的5项服务。 当我们开始一个第六,启动时服务崩溃。 例如,我可以开始#1,#2,#3,#4和#5。 当我开始#6时,它崩溃。 但是,如果我停止#1并开始#6,#6运行良好,现在#1无法启动。 当服务崩溃时,Windows事件日志中出现以下错误: 错误应用程序OurWindowsService.exe,版本5.40.1.1,错误模块kernel32.dll,版本5.2.3790.4480,错误地址0x0000bef7。 我能够使用WinDbg生成一个postmortem转储文件。 转储文件显示崩溃试图延迟加载SHLWAPI.dll: 0:000> kb100 ChildEBP RetAddr Args to Child 0012ece4 79037966 c06d007e 00000000 00000001 KERNEL32!RaiseException+0x53 0012ed4c 790099ba 00000008 0012ed08 7c82860c mscoree!__delayLoadHelper2+0x139 0012ed98 790075b1 001550c8 0012edac 0012fb34 mscoree!_tailMerge_**SHLWAPI_dll**+0xd 0012edb0 79007623 001550c8 0012edf8 0012edf4 mscoree!XMLGetVersionWithSupported+0x22 0012ee00 790069a4 aa06f1b0 00000000 000001fe mscoree!RuntimeRequest::GetRuntimeVersion+0x56 0012f478 […]