Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
托管在IIS中的MSMQ WCF_Wcf_Iis_Msmq - Fatal编程技术网

托管在IIS中的MSMQ WCF

托管在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在回收后

我被困在以下情况中-我有两个web应用程序–AB。它们都在同一台计算机上运行B正在承载netMsmqBinding WCF服务。而且,B的应用程序池刚刚自我循环A调用B的WCF服务。我看到消息已到达我创建的私有MSMQ队列中。但在我不浏览*.svc URL之前,B不会继续发送消息。 我是否错过了这项技术所需要的东西?实现这种功能的干净方法是什么? 这些是我正在使用的配置。如果我遗漏了一些有用的信息,请告诉我,我将提供: 服务(B):


客户(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>