harshit
harshit

Reputation: 3846

Getting a service timeout Exception

Major Change

Found:

<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>

in app.config and chaged all timeouts there, even then it is throwing the same exception. CHANGE:

<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>

I am getting an TimeOut exception while calling a webservice. The webservice is deployed in java and my client is a c# winform. The webservice is deployed on TOMCAT server It gives following exception on the client side:

The request channel timed out while waiting for a reply after 00:00:56.9230000. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout.

Exception on client side:

System.TimeoutException was caught Message=The request channel timed out while waiting for a reply after 00:01:00. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout. Source=mscorlib StackTrace: Server stack trace: at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs) at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at abc.ae.SnippetExtraction.DictionaryLookUp.EntityExtraction.extractNERTokensFromFile(extractNERTokensFromFileRequest request) at abc.ae.SnippetExtraction.DictionaryLookUp.EntityExtractionClient.abc.ae.SnippetExtraction.DictionaryLookUp.EntityExtraction.extractNERTokensFromFile(extractNERTokensFromFileRequest request) in C:\Users\htiwari\Documents\ae-establishin\ae\CommonUtilities\abc\ae-Re\SnippetExtraction\Service References\DictionaryLookUp\Reference.cs:line 1069 at abc.ae.SnippetExtraction.DictionaryLookUp.EntityExtractionClient.extractNERTokensFromFile(String fileName) in C:\Users\htiwari\Documents\ae-establishin\ae\CommonUtilities\abc\ae-Re\SnippetExtraction\Service References\DictionaryLookUp\Reference.cs:line 1075 at abc.ae.SnippetExtraction.TokenizeAndMap2.ConfigureSnippetList(Snippet snippet) in C:\Users\htiwari\Documents\ae-establishin\ae\CommonUtilities\abc\ae-Re\SnippetExtraction\TokenizeAndMap2.cs:line 42 InnerException: System.TimeoutException Message=The HTTP request to 'http://172.22.4.224:8084/EntityExtraction/EntityExtraction' has exceeded the allotted timeout of 00:01:00. The time allotted to this operation may have been a portion of a longer timeout. Source=System.ServiceModel StackTrace: at System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, HttpWebRequest request, HttpAbortReason abortReason) at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout) at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) InnerException: System.Net.WebException Message=The operation has timed out Source=System StackTrace: at System.Net.HttpWebRequest.GetResponse() at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout) InnerException:

Webservice is accessed through WSDL. I have following code in my app.config

CODE AT app.config AT CLIENT SIDE

<endpoint address="http://localhost:8084/EntityExtraction/EntityExtraction"
    binding="basicHttpBinding" bindingConfiguration="EntityExtractionPortBinding"
    contract="DictionaryLookUp.EntityExtraction" name="EntityExtractionPort" />

Upvotes: 0

Views: 3133

Answers (3)

Kristian Andersen
Kristian Andersen

Reputation: 1

I was having a similar experience when setting a timeout to the value timeout="00:60:00". Its like the system is interpretating this as 0 seconds. If needed, set value to either "00:59:00" or "01:00:00"

Upvotes: 0

harshit
harshit

Reputation: 3846

Did not work on inputting any value in app.config file. However, it did work when I increased timeout value by hardcoding it:

DictionaryLookUp.EntityExtractionClient nlp = new 
                             DictionaryLookUp.EntityExtractionClient();
nlp.InnerChannel.OperationTimeout = new TimeSpan(0, 50, 0);

Upvotes: 0

ilvez
ilvez

Reputation: 1285

If I understand you have timeout set less then 60 seconds or and your webservice just takes more time to process query and give response. Increase timout for request or optimize webservice.

Test with SoapUI, how long does it take for webservice to respond.

Upvotes: 0

Related Questions