3

WSHttpBinding信頼できるセッションが有効になっているWCFでを使用すると、サービス参照は次のように更新されます。

<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="true">
</reliableSession>

maxRetryCountバインディングがWSHttpBindingとして構成されている限り、reliableSessionに属性を追加できません。

今私の質問:maxRetryCountWSHttpBindingを使用するときの値は何ですか、そしてこれをconfigで変更する方法はありますか?CustomBindingを使用せずに?

4

1 に答える 1

8

maxRetryCount標準構成では設定できませんwsHttpBinding。その値を設定するには、個別のカスタムバインディングを作成し、サービスまたはクライアントの構成からそれを参照する必要があります。

  <system.serviceModel>
    <bindings>
      <customBinding>
        <binding name="wsCustomBinding">
          <reliableSession maxRetryCount="15"/>
          <textMessageEncoding/>
          <httpTransport />
        </binding>
      </customBinding>
    </bindings>
    <services>
      <service name="MyService">
        <endpoint address="http://localhost:7878/MyServoce"
                  binding="customBinding"
                  bindingConfiguration="wsCustomBinding"
                  contract="IMyService" />
      </service>
    </services>
  </system.serviceModel>

カスタムバインディングの定義は難しくありませんが、バインディングを構成する要素を正しい順序で指定する必要があります。リファレンスについては、カスタムバインディングに関するMSDNドキュメントを参照してください。

サーバーとクライアント間でカスタムバインディング構成を共有する場合は、その<bindings>セクションを別のbindings.configファイルに入れて、web.config/app.configからその外部ファイルを参照することもできます。

  <system.serviceModel>
    <bindings configSource="bindings.config">

Visual Studioはこれについて不平を言い、赤い波線の下線を表示します-しかし私を信じてください-テクニックは機能します、私は毎日それを本番環境で使用します(構成のものを記述するVisual Studio XMLスキーマは完全で正確ではありません)。

マーク

于 2009-12-28T10:39:48.027 に答える