【发布时间】:2014-06-18 14:07:19
【问题描述】:
我有一个使用 MassTransit 和 MSMQ 的 .NET MVC 4 Web 应用程序。我们有几个使用 MSMQ 的旧版应用程序,因此我受限于该协议。我的 global.asax.cs 文件中 Application_Start() 中的客户端代码如下所示:
Bus.Initialize(sbc =>
{
sbc.UseMsmq(a => a.UseSubscriptionService("msmq://localhost/mt_subscriptions"));
sbc.ReceiveFrom("msmq://localhost/webconsole?tx=false&recoverable=false");
sbc.UseControlBus();
sbc.UseBinarySerializer();
});
我在 Windows 8.1 开发人员机器上运行此应用程序,当我在 IIS 8.5 上运行它时,此调用成功完成并且通信工作正常。但是,当我在 IIS Express 8.0 上运行它时,调用永远不会完成,最终会引发超时错误。我在 IIS Express 常见问题解答中找到了以下内容:
Q: Does IIS Express support non-HTTP protocols such as net.tcp or MSMQ?
A: No. IIS Express only supports HTTP and HTTPS as its protocol.
好的,很公平,但我不明白 Web 服务器与 MSMQ 有什么关系(除了在 HTTP 上使用 MSMQ,我不打算这样做);我没有任何“msmq://”路由或类似的东西。 MassTransit 不通过 Web 服务器直接使用 MSMQ 吗?而且我不敢相信我是唯一一个使用 MassTransit 在 IIS Express 上进行开发的开发人员。
关于这里发生了什么的任何见解?谢谢!
【问题讨论】:
标签: c# asp.net msmq iis-express masstransit