0

次の構成を使用してサービスをセッションフルにしていますが、リクエストごとに wcf サービスが新しいセッション ID で応答しています。なぜそうなのか、各リクエストに対して同じセッション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>
4

1 に答える 1

0

デフォルトでは、チャネルが開かれるとセッションが開始されます。詳細については、こちらの WCF のセッションを参照してください。

IsInitiating パラメーターのデフォルト値が true であるため、呼び出しごとに新しいセッションが開始されます。詳細はこちらIsInitiatingIsInitiating

だからあなたの運営契約で

[OperationContract(
    IsInitiating=false,
    IsTerminating=false
  )]
  public void MethodOne()
  {
    return;
  }
于 2014-11-22T05:18:35.607 に答える