2014-10-31 114 views
0

我正在使用以下配置来使我的服务有效,但对于每个请求wcf服务正在用新的会话ID响应我。为什么会这样,我需要让sessionful对于客户端,以便为每个请求应该有默认情况下,当通道被打开,你可以阅读更多关于它在这里发起会话相同的会话ID为什么在wsHttpBinding中每次都创建新会话ID

<system.serviceModel> 
    <bindings> 
     <wsHttpBinding> 
     <binding name="wsHttp"> 
      <readerQuotas maxStringContentLength="10240" /> 
      <reliableSession enabled="true" />   
     </binding> 
     </wsHttpBinding> 
    </bindings> 
    <services>     
     <service name="wcfservice.serviceclass" behaviorConfiguration="MyFileServiceBehavior"> 

     <host> 
      <baseAddresses> 
      <add baseAddress="http://localhost:51/"/> 
      <add baseAddress="net.tcp://localhost:52/"/> 
      </baseAddresses>   
     </host> 
     <endpoint address="pqr" binding="wsHttpBinding" bindingConfiguration="wsHttp" 
      name="b" contract="wcfservice.Iservice" /> 
     <endpoint address="pqr" binding="netTcpBinding" 
      name="c" contract="wcfservice.Iservice" />  
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="MyFileServiceBehavior"> 
      <serviceMetadata httpGetEnabled="true" />    
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 

    </system.serviceModel> 
+0

你有'SessionMode = SessionMode.Required'您ServiceContractAttribute的? – 2014-11-16 01:37:09

+0

它是sessionmode.allowed – funsukvangdu 2014-11-16 14:16:40

+0

将会话模式设置为必需,因此在发生错误时抛出异常,修复所有内容后,可以将其更改为允许。在您的问题中添加以下信息,调用您的服务的客户端示例代码,以及网络配置,任何物理负载平衡机制,防火墙(基于硬件和软件的模型)以及代理服务器。 – 2014-11-21 07:31:27

回答

0

Sessions in WCF

由于IsInitiating参数的默认值为true,因此每次调用都会启动一个新会话。了解更多关于在这里IsInitiatingIsInitiating

所以在您的业务合同

[OperationContract(
    IsInitiating=false, 
    IsTerminating=false 
)] 
    public void MethodOne() 
    { 
    return; 
    } 
相关问题