gpt4 book ai didi

wcf - Windows 服务中托管的 MSMQ 支持的 WCF 服务在启动时失败

转载 作者:行者123 更新时间:2023-12-01 19:47:58 26 4
gpt4 key购买 nike

我有一个托管在 Windows 服务中的 WCF 服务,我将其设置为“自动”,以便在服务器启动时它将自动启动。该服务端点由 MSMQ 支持。

当我手动启动服务时,一切都很好。但是当服务启动时,我收到 MSMQ 异常:

System.TypeInitializationException: The type initializer for
'System.ServiceModel.Channels.Msmq' threw an exception. --->
System.ServiceModel.MsmqException: The version check failed with the error:
'The Message Queuing service is not available (-1072824309, 0xc00e000b)'. The
version of MSMQ cannot be detected All operations that are on the queued channel
will fail. Ensure that MSMQ is installed and is available.
at System.ServiceModel.Channels.MsmqQueue.GetMsmqInformation
(Version& version, Boolean& activeDirectoryEnabled)
at System.ServiceModel.Channels.Msmq..cctor()
--- End of inner exception stack trace ---

在服务启动之前,MSMQ 似乎尚未准备好使用...有解决方案吗?

最佳答案

您需要在 WCF 服务主机中添加对 MSMQ 的依赖项。您可以在服务安装程序中执行此操作:

ServiceInstaller serviceInstaller = new ServiceInstaller();
// Adding this property to your ServiceInstaller forces
// your service to start after MSMQ.
serviceInstaller.ServicesDependedOn = new string[] { "MSMQ" };

如果您没有使用服务安装程序,您还可以通过编辑 Windows 注册表来添加服务的 MSMQ 依赖项,如“Microsoft Support: How to delay loading of specific services”中所述。

关于wcf - Windows 服务中托管的 MSMQ 支持的 WCF 服务在启动时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1929941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com