我的主机中有以下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>
Run Code Online (Sandbox Code Playgroud)
如何将netNamedPipeBinding超时设置为无限又名Timespan.MaxValue?
Mat*_*vis 24
使用infinite的各种超时值-关闭,开放,接收和发送.您可以在绑定配置中指定这些超时.
<bindings>
<netNamedPipeBinding>
<binding name="mybinding" closeTimeout="infinite" openTimeout="infinite"
receiveTimeout="infinite" sendTimeout="infinite" />
</netNamedPipeBinding>
</bindings>
Run Code Online (Sandbox Code Playgroud)
该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>
Run Code Online (Sandbox Code Playgroud)
我不记得具体(我现在没有时间看),但你可能不得不把这些东西放在你的客户端配置中.
小智 8
将其设置为最大时间跨度,即10675199.02:48:05.4775807
sendTimeout="10675199.02:48:05.4775807"
Run Code Online (Sandbox Code Playgroud)
您也可以像下面这样给出最长时间
{
binding.CloseTimeout = TimeSpan.MaxValue;
binding.OpenTimeout = TimeSpan.MaxValue;
binding.ReceiveTimeout = TimeSpan.MaxValue;
binding.SendTimeout = TimeSpan.MaxValue;
Run Code Online (Sandbox Code Playgroud)
}