Ответ 1
Используйте 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>
Я не помню специально (и у меня нет времени на то, чтобы посмотреть прямо сейчас), но вам, возможно, придется поместить этот материал в свою конфигурацию клиента.