确保(重新启动)托管在 IIS7.5 WAS 上的 MSMQ WCF 服务
一个多月以来,我们一直在困扰一个问题:IIS7.5 (WAS) 中托管的 wcf msmq 服务将停止处理队列中的消息。
我们无法将范围缩小到“在某个时刻”它将停止处理队列中的消息。通过 http 浏览器调用来调用 svc 将再次开始处理。
在阅读了有关此问题的大量文章、博客和论坛帖子后,我们确保了以下内容:安全设置、协议绑定和 msmq/服务命名,但可惜的是:该服务仍然会停止处理消息(在某些时候)。
受到本文的鼓励 http://www.daczkowski.net/2010/11/19/leveraging-msmq-in-asp-net-application-through-wcf-service/ 我们现在似乎终于(几乎)消除了这个问题对于 Windows Server 2008 R2 SP1 64 位,但它似乎仍然出现在 Windows 7 32 位上。
现在回答我的问题:谁能告诉我是否确实存在保证(对此的文档将不胜感激),msmq WAS 托管的 wcf 服务实际上将在不运行 AppFabric 扩展的 IIS7.5 上重新启动(在所有条件下) ?
我知道这个问题非常复杂,但我很难找到有关为什么我们应该使用 AppFabric 扩展 OTS 包来解决此重启问题的文档。
此致,
We have been tumbling, for more than a month now, with an issue where a wcf msmq service hosted in IIS7.5 (WAS) will stop processing messages from the queue.
We have been unable to narrow it down more than "at some point" it will stop processing messages from the queue. Calling the svc through a http browser call will start the processing again.
After reading really many articles, blogs and forum posts about this issue we have ensured the following: Security settings, protocol bindings and msmq/service naming, but alas: the service will still stop processing messages (at some point).
Encouraged by this article http://www.daczkowski.net/2010/11/19/leveraging-msmq-in-asp-net-application-through-wcf-service/ we seem to have now finally (almost) eliminated the problem for windows server 2008 r2 sp1 64 bit, but it still seems to appear on Windows 7 32 bit.
Now to get to my question: Can anyone tell me if there actually exists a guarentee (documentation on this would be appreciated) that a msmq WAS hosted wcf service will actually restart (under all conditions) on a IIS7.5 NOT running the AppFabric extension?
I am aware that this question is very compounded, but I'm hard pressed for documentation on why we should extend our OTS package with AppFabric to resolve this restart problem.
Best regards,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的 net.msmq 端点是否实际使用 IIS 可以绑定到队列名称的地址?可以在配置中使用非 IIS 兼容的名称,并且 WAS 永远无法真正唤醒您的应用程序,因为 WAS 只会按照它可以解析的路径名注册到队列。在这种情况下,您需要诸如 AppFabric 或“启动”脚本之类的东西来实际激活您的服务,以便它们能够绑定到自己的队列。
Are you're net.msmq endpoints actually using addresses that IIS can bind to a queue name? It's possible to use non-IIS compatible names in the config and WAS won't really ever be able to wake your application up because WAS will only ever register to queues following a path name it can resolve. In that case you need something like AppFabric or a "startup" script to actually activate your services so that they will bind to the queues in their own.