【问题标题】:MSMQ WCF hosted in IISIIS 中托管的 MSMQ WCF
【发布时间】:2016-02-16 01:44:17
【问题描述】:

我陷入了以下情况 - 我有两个 Web 应用程序 - AB。它们都在同一台计算机上运行。 B 正在托管 netMsmqBinding WCF 服务。另外,B 的应用程序池刚刚回收了自己。 A 调用 B 的 WCF 服务。我看到消息已到达我创建的私有 MSMQ 队列。但在我不浏览 *.svc URL 之前,消息不会由 B 处理。 我错过了这项技术所需的东西吗?实现这种功能的干净方法是什么? 这些是我正在使用的配置。如果我错过了一些有用的信息,请告诉我,我会提供: 服务(B):

<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>

客户(A):

    <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>

提前谢谢:)

【问题讨论】:

    标签: wcf iis msmq


    【解决方案1】:

    这可能是因为 IIS 在回收后没有启动您的应用程序。

    可能的解决方案是配置auto-start。然后 IIS 将立即启动您的服务,而无需等待第一个请求。

    【讨论】:

      【解决方案2】:

      Imortist 作品的可能解决方案!!

      但首先您需要将AppFabric 添加到您的 ISS,然后您需要确保在您的泳池高级设置中有“启动模式”选项。

      注意:在我的 windows 7 IIS7 中没有工作,但在我的 windows server 2012 R2 IIS8 中完美运行

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        • 2011-12-01
        • 1970-01-01
        • 2011-07-01
        • 2016-06-06
        • 1970-01-01
        • 2022-12-13
        相关资源
        最近更新 更多