简体   繁体   English

使用Srmp TransferProtocol的WCF HTTP激活

[英]WCF HTTP Activation using Srmp TransferProtocol

I've got a windows service calling a WCF web service using netMsmqBinding with the queueTransferProtocol set to Srmp. 我有一个Windows服务,该服务使用netMsmqBinding调用WCF Web服务,并将queueTransferProtocol设置为Srmp。

All of this works great, except for when the application pool hosting the web service gets restarted or recycled. 所有这些都很好用,除了重新启动或回收托管Web服务的应用程序池时。

The only way to get messages to send is by manually browsing to the URL, or using some http ping utility. 获取消息发送的唯一方法是手动浏览到URL或使用某些http ping实用程序。 Once the URL is activated the WCF web service starts to consume the incoming queue. 激活URL后,WCF Web服务将开始使用传入队列。

I had this problem before switching to Srmp, and I resolved it by installing the WCF Activation feature on the web server and naming the queue appropriately. 在切换到Srmp之前,我遇到了这个问题,我通过在Web服务器上安装WCF激活功能并适当地命名队列来解决了该问题。

I've been forced to use Srmp due to firewall restrictions so port 80 or 443 are my only options. 由于防火墙的限制,我被迫使用Srmp,所以端口80或443是我唯一的选择。

There is a workaround here where I could set up a scheduled task to call each web service on schedule, but I would prefer a simpler more robust solution. 这里有一个解决方法,我可以设置一个计划任务来按计划调用每个Web服务,但是我希望有一个更简单,更可靠的解决方案。

A full solution would be really nice, but I'm open to considering some other workarounds. 完整的解决方案真的很不错,但我愿意考虑其他一些解决方法。

OK found the solution to this and was sure that I tried it before. 确定找到了解决方案,并确保我之前尝试过。

Install AppFabric 1.1 and set the web service application to auto start. 安装AppFabric 1.1,并将Web服务应用程序设置为自动启动。

This resolved the problem. 这样就解决了问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM