【问题标题】:MSMQ listener with WCF?带有 WCF 的 MSMQ 侦听器?
【发布时间】:2015-05-11 19:39:10
【问题描述】:

场景: 我想实现一个 MSMQ,其中用户通过 System.Messaging API 输入消息。并且应该有一个监听器,它总是观察这个队列,所以当队列中有消息时,我想更新数据库。

我的第一个方法是实现 MSMQ 触发器。我能够实现 COM 互操作 dll 触发器。但是我无法进行数据库操作,我无法弄清楚出了什么问题,我尝试了很多。然后我开始了解这个 WCF MSMQ 绑定。由于我是这个 WCF 的新手,所以我有一些疑问。

在这种情况下,哪种是托管 WCF 的最佳方法。是带有 WAS 的 IIS 还是 Windows 服务?

而对于这种监听服务是需要客户端的还是可以直接在Service主机操作下编写数据库操作而不需要客户端调用?

【问题讨论】:

  • 你用的是什么数据库?
  • 我使用的是 SQL 服务器。我试图在 COM 触发器中引用实体框架。
  • IIS 和 Windows 服务都是可行的选择。使用 IIS,请注意,在某些情况下,您的队列处理可能会卡住,因为工作进程已被 IIS 清理并且没有生成新进程(但偶尔会执行一次 HTTP 请求,以获取元数据示例可以使所有内容保持活力)。
  • 所以我们根本不需要客户端来消费这个服务

标签: c# .net asp.net-mvc wcf msmq


【解决方案1】:

然后我开始了解这个 WCF MSMQ 绑定。因为我是新手 WCF 我有一些疑问

嗯,这是有效的。 WCF 的学习曲线相当陡峭,配置繁重,并且是 not everyone's cup of tea

但是,如果您要集成到 MSMQ,WCF 有很好的支持,并且在实现方式方面非常可靠。

在这种情况下,哪种是托管 WCF 的最佳方法。是 IIS 吗 WAS 还是 Windows 服务?

除非您专门在 Web 环境中托管,否则我每次都会选择 Windows 服务。使用topshelf 之类的东西,部署和管理开销很小,并且没有外部依赖项。

记得使用msmqIntegrationBinding而不是netMsmqBinding,因为后者在两端都依赖WCF,而前者在客户端支持System.Messaging,或者更好的是,在客户端使用WCF,然后你可以使用支持“”的netMsmqBinding键入”的消息。

【讨论】:

    猜你喜欢
    • 2011-12-05
    • 2012-02-27
    • 1970-01-01
    • 2012-04-05
    • 2013-10-15
    • 2012-04-28
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多