当InstanceContextMode = Single时,WCF MEX端点停止工作

时间:2018-10-02 01:50:41

标签: wcf singleton

如果设置了 InstanceContextMode = PerSession ,我可以正确使用WCF服务。一旦将其更改为 Single (单个),MEX端点就会旋转直到收到超时异常。在这两种情况下,我都设置为 ConcurrencyMode = Multiple。。我是否需要做一些特殊的事情来为Singleton服务配置我的MEX端点,还是应该注意一些限制?

以下是错误详细信息的副本:

  

下载'http://localhost:8000/Services/MyService1/mex/ $ metadata'时出错。   请求失败,HTTP状态为400:错误的请求。   元数据包含无法解析的引用:“ http://localhost:8000/Services/MyService1/mex”。   对“ http://localhost:8000/Services/MyService1/mex”的HTTP请求已超过分配的超时时间00:05:00。分配给该操作的时间可能是较长超时的一部分。   该请求被中止:该请求被取消。   如果服务是在当前解决方案中定义的,请尝试构建解决方案并再次添加服务引用。

这是app.config的副本:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<system.serviceModel>
    <behaviors>
        <serviceBehaviors>
            <behavior name="MEX">
                <serviceMetadata httpGetEnabled="true" />
                <serviceDebug includeExceptionDetailInFaults="true" />
            </behavior>
        </serviceBehaviors>          
    </behaviors>
    <services>
        <service name="MyService1" behaviorConfiguration="MEX" >
            <endpoint address="/MyService1" binding="netNamedPipeBinding" contract="IMyService1">
                <identity>
                    <dns value="localhost" />
                </identity>
            </endpoint>
            <endpoint address="/MyService1/mex" binding="mexHttpBinding" contract="IMetadataExchange" />
            <host>
                <baseAddresses>
                  <add baseAddress="net.pipe://localhost/Services"/>
                    <add baseAddress="http://localhost:8000/Services/" />
                </baseAddresses>
            </host>              
        </service>
    </services>
</system.serviceModel>
</configuration>

0 个答案:

没有答案