web-dev-qa-db-ja.com

このWCF連絡先でreceiveTimeoutとsendTimeoutを無限大に設定するにはどうすればよいですか?

ホストに次のapp.configがあります。

<services>
  <service name="DCC_Service.DCCService" behaviorConfiguration="serviceBehavior">
    <endpoint binding="netNamedPipeBinding" contract="DCC_Service.IDCCService" address="DCCService" />
    <endpoint binding="mexNamedPipeBinding" contract="IMetadataExchange" address="mex" />
    <Host>
      <baseAddresses>
        <add baseAddress="net.pipe://localhost/"/>
      </baseAddresses>
    </Host>
  </service>
</services>

<behaviors>
  <serviceBehaviors>
    <behavior name="serviceBehavior">
      <serviceMetadata httpGetEnabled="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

NetNamedPipeBindingのタイムアウトを無限の別名Timespan.MaxValueに設定するにはどうすればよいですか?

18
Ryan R

さまざまなタイムアウト値(閉じる、開く、受信、送信)にはinfiniteを使用します。これらのタイムアウトは、そのようなバインディング構成で指定します。

<bindings>
    <netNamedPipeBinding>
        <binding name="mybinding" closeTimeout="infinite" openTimeout="infinite"
            receiveTimeout="infinite" sendTimeout="infinite" />
    </netNamedPipeBinding>
</bindings>

bindingsセクションは、servicesおよびbehaviorsセクションと同じレベルになります。残っているのは、サービスエンドポイントのバインディング構成を参照することだけです。

<services>
  <service name="DCC_Service.DCCService" behaviorConfiguration="serviceBehavior">
    <endpoint binding="netNamedPipeBinding"
        contract="DCC_Service.IDCCService"
        address="DCCService"
        bindingConfiguration="mybinding"/>         <!-- SEE THIS LINE -->
    <endpoint binding="mexNamedPipeBinding"
        contract="IMetadataExchange"
        address="mex" />
    <Host>
      <baseAddresses>
        <add baseAddress="net.pipe://localhost/"/>
      </baseAddresses>
    </Host>
  </service>
</services>

<behaviors>
  <serviceBehaviors>
    <behavior name="serviceBehavior">
      <serviceMetadata httpGetEnabled="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

具体的には覚えていませんが(今は調べる時間がありません)、クライアント構成にもこのようなものを含める必要があるかもしれません。

23
Matt Davis

10675199.02:48:05.4775807である最大タイムスパンとして設定します

sendTimeout="10675199.02:48:05.4775807"
8
Libish Jacob

以下のように最大タイムアウトを与えることもできます

{{

            binding.CloseTimeout = TimeSpan.MaxValue;

            binding.OpenTimeout = TimeSpan.MaxValue;

            binding.ReceiveTimeout = TimeSpan.MaxValue;

            binding.SendTimeout = TimeSpan.MaxValue;

}

5
Hari