重大变化
成立:
<binding name="EntityExtractionPortBinding" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
在 app.config 中并在那里更改了所有超时,即使那样它也会抛出相同的异常。改变:
<binding name="EntityExtractionPortBinding" closeTimeout="00:60:00"
openTimeout="00:60:00" receiveTimeout="00:60:00" sendTimeout="00:60:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
调用 Web 服务时出现 TimeOut 异常。webservice部署在java中,我的客户端是ac#winform。Web服务部署在TOMCAT服务器上它在客户端给出以下异常:
请求通道在 00:00:56.9230000 之后等待回复时超时。增加传递给 Request 调用的超时值或增加 Binding 上的 SendTimeout 值。分配给此操作的时间可能是较长超时的一部分。
客户端异常:
System.TimeoutException 被捕获 Message=请求通道在 00:01:00 之后等待回复时超时。增加传递给 Request 调用的超时值或增加 Binding 上的 SendTimeout 值。分配给此操作的时间可能是较长超时的一部分。Source = mscorlib StackTrace:服务器堆栈跟踪:在 System.ServiceModel.Channels.RequestChannel.Request(消息消息,TimeSpan 超时)在 System.ServiceModel.Dispatcher.RequestChannelBinder.Request(消息消息,TimeSpan 超时)在 System.ServiceModel.Channels。 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, 已超过分配的超时时间 00:01:00。分配给此操作的时间可能是较长超时的一部分。Source=System.ServiceModel StackTrace:在 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan 超时)在 System.ServiceModel.Channels 的 System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException,HttpWebRequest 请求,HttpAbortReason abortReason)。 Channels.RequestChannel.Request(消息消息,TimeSpan 超时) InnerException:System.Net.WebException 消息=操作已超时 Source=System StackTrace:位于 System.ServiceModel 的 System.Net.HttpWebRequest.GetResponse()。
通过 WSDL 访问 Web 服务。我的 app.config 中有以下代码
客户端的 app.config 中的代码
<endpoint address="http://localhost:8084/EntityExtraction/EntityExtraction"
binding="basicHttpBinding" bindingConfiguration="EntityExtractionPortBinding"
contract="DictionaryLookUp.EntityExtraction" name="EntityExtractionPort" />