【问题标题】:MSMQ not invoking COMMSMQ 不调用 COM
【发布时间】:2010-12-01 04:27:01
【问题描述】:

我用 c# 制作了一个 COM 对象并让 VS 为我注册它。我可以在注册表中看到它,如果我制作了一个测试应用程序,我可以添加对它的引用,它可以与所有可用的方法一起正常工作。

现在,如果我尝试在 MSMQ 规则中使用它,则不会发生任何事情。它不会被调用。这是因为它是一个 .NET 程序集吗?是因为我没有VS Pro吗?你有什么想法吗?

【问题讨论】:

  • 凹凸。只是想知道是否有人有想法。更新。在 Wondows avent 查看器中,它指出无法找到 COM 组件。为什么找不到。一切看起来都不错。
  • 更新。我现在有 VS PRO,但它仍然无法正常工作。但是,我在第一次构建项目时遇到了拒绝访问错误。第二次建得很好。但我怀疑它仍然没有正确注册。
  • 您收到构建错误,因为 VS 尝试调用 regasm 但没有管理员权限就无法运行

标签: c# visual-studio com msmq


【解决方案1】:

您没有任何机会在映射的网络驱动器上注册您的组件吧? MSMQ 在与交互式 WinStation 不同的 WinStation 中运行。在交互式 WinStation 中映射的网络驱动器在其他 WinStation 中不可见,这可能导致您描述的症状(未找到组件)。

【讨论】:

  • 我一开始是这样做的。但后来我把我的项目搬到了本地,用 VS 注册了它,并完全重新创建了触发器和规则。我仍然收到相同的事件消息。我求助于使用 Windows 服务来监听消息,而不是在组件上触发的消息。请参阅stackoverflow.com/questions/1521841/…
【解决方案2】:

您需要检查系统事件日志中的错误消息 (eventvwr.exe)。如果您的组件已注册并且 MSMQ 已正确配置为激活您的组件但它失败了,则很可能问题出在权限上。事件日志应包含问题的详细信息。

【讨论】:

  • 该事件只是表明找不到组件。我对此进行了研究,其他人都同意这是一个非常模糊的信息。
【解决方案3】:

更新!!!

我又搞砸了。我创建了一个简单的 EXE 以在收到消息时触发。它接受 2 个字符串参数。

我第一次忘记传递参数,我得到了与之前描述的相同的错误。关于未找到 COM 对象。我传递了参数,它工作正常。

我以为我将参数传递给我的 COM 对象就好了,但也许不是。也许我做错了什么。我将创建一个不带参数的 COM,看看是否可以强制 COM 调用。

如果有人作为创建对象来接受参数的例子,请告诉我。

【讨论】:

    猜你喜欢
    • 2011-05-30
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 2016-10-25
    • 2018-09-13
    • 2011-10-12
    • 2014-05-06
    • 2013-04-29
    相关资源
    最近更新 更多