【问题标题】:WCF MSMQ DllNotFoundExceptionWCF MSMQ DllNotFoundException
【发布时间】:2012-11-05 14:51:03
【问题描述】:

我正在尝试访问托管在 Windows 服务中的远程 WCF 服务(使用 netMsmqBinding)并收到错误:

Message: System.TypeInitializationException: The type initializer for 'System.ServiceModel.Channels.Msmq' threw an exception. ---> System.DllNotFoundException:     Unable to load DLL 'mqrt.dll': A dynamic link library (DLL) initialization routine failed. (Exception from HRESULT: 0x8007045A)
at System.ServiceModel.Channels.UnsafeNativeMethods.MQGetPrivateComputerInformation(String computerName, IntPtr properties)

我已经读到如果没有安装 msmq 可能会出现这个错误,但是 msmq 不应该安装在本地机器上......它安装在它试图与之交谈的远程机器上。

还有什么可能导致这种情况?

【问题讨论】:

    标签: wcf msmq wcf-binding


    【解决方案1】:

    任何希望参与消息传输的机器都需要安装 MSMQ。

    这是因为 MSMQ 使用称为 Store and forward 的消息传递模式,这使得 MSMQ 能够抵御传输失败。

    【讨论】:

    • 假设我有一些 Windows 2008 服务器和一些 Windows 2003 服务器,因为它们的 MSMQ 版本不同,会不会有问题?
    • 排除一些例外情况(参见:blogs.msdn.com/b/johnbreakwell/archive/2007/06/29/…)所有版本都应该相互兼容。
    • 嗨 user1830197,我在这里遇到了完全相同的问题:stackoverflow.com/q/18577115/192999。你能告诉我更多关于你是如何解决这个问题的吗?任何帮助表示赞赏。
    • 已对该问题发表评论
    【解决方案2】:

    转到程序和功能,然后打开或关闭 Windows 功能。找到 Microsoft 消息队列 (MSMQ) 服务器 并启用它。

    感谢:https://stackoverflow.com/a/26705197/782856

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-22
      • 2012-05-02
      • 2012-07-20
      相关资源
      最近更新 更多