托管在IIS中的MSMQ WCF
我被困在以下情况中-我有两个web应用程序–A和B。它们都在同一台计算机上运行B正在承载netMsmqBinding WCF服务。而且,B的应用程序池刚刚自我循环A调用B的WCF服务。我看到消息已到达我创建的私有MSMQ队列中。但在我不浏览*.svc URL之前,B不会继续发送消息。 我是否错过了这项技术所需要的东西?实现这种功能的干净方法是什么? 这些是我正在使用的配置。如果我遗漏了一些有用的信息,请告诉我,我将提供: 服务(B):托管在IIS中的MSMQ WCF,wcf,iis,msmq,Wcf,Iis,Msmq,我被困在以下情况中-我有两个web应用程序–A和B。它们都在同一台计算机上运行B正在承载netMsmqBinding WCF服务。而且,B的应用程序池刚刚自我循环A调用B的WCF服务。我看到消息已到达我创建的私有MSMQ队列中。但在我不浏览*.svc URL之前,B不会继续发送消息。 我是否错过了这项技术所需要的东西?实现这种功能的干净方法是什么? 这些是我正在使用的配置。如果我遗漏了一些有用的信息,请告诉我,我将提供: 服务(B): 客户(A): 提前感谢:)这可能是因为IIS在回收后
客户(A):
提前感谢:)这可能是因为IIS在回收后没有启动您的应用程序
可能的解决方案是配置。然后IIS将立即启动您的服务,而无需等待第一个请求。iMotist的可能解决方案有效 但首先你需要添加到你的ISS,然后你需要确保你的池高级设置中有“启动模式”选项 注意:在我的windows 7中IIS7不工作,但在我的windows server 2012中R2 IIS8工作得很好
<system.serviceModel>
<services>
<service name="MyProject.Web.Services.EmsListener">
<endpoint address="net.msmq://localhost/private/myQueue"
binding="netMsmqBinding" bindingConfiguration="MyMsmqBinding"
contract="MyProject.Abstraction.IEmsListener">
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<netMsmqBinding >
<binding name="MyMsmqBinding"
durable="true"
receiveRetryCount="2"
maxRetryCycles="2"
retryCycleDelay="00:01:00"
receiveErrorHandling="Move" >
<security mode="None">
<message clientCredentialType="None"/>
<transport msmqAuthenticationMode="None" msmqProtectionLevel="None" />
</security>
</binding>
</netMsmqBinding>
<system.serviceModel>
<bindings>
<netMsmqBinding>
<binding name="MyBinding ">
<security mode="None" />
</binding>
</netMsmqBinding>
</bindings>
<client>
<endpoint address="net.msmq://localhost/private/myQueue" binding="netMsmqBinding"
bindingConfiguration=" MyBinding " contract="EmsListener.IEmsListener"
name=" MyBinding " />
</client>
</system.serviceModel>