0

主な変更

見つかった:

<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例外が発生します。Webサービスは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タイムアウト)at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(メッセージメッセージ、TimeSpanタイムアウト)atSystem.ServiceModel.Channels。 System.ServiceModel.Channels.ServiceChannel.Call(String action、Boolean oneway、割り当てられたタイムアウト00:01:00を超えました。この操作に割り当てられた時間は、より長いタイムアウトの一部であった可能性があります。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)atSystem.ServiceModel。 Channels.RequestChannel.Request(メッセージメッセージ、TimeSpanタイムアウト)InnerException:System.Net.WebExceptionメッセージ=操作がタイムアウトしましたSource = System StackTrace:at System.Net.HttpWebRequest.GetResponse()atSystem.ServiceModel。

WebサービスにはWSDLを介してアクセスします。app.configに次のコードがあります

クライアント側のapp.configのコード

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

3 に答える 3

0

タイムアウトが60秒未満に設定されていること、またはWebサービスがクエリを処理して応答するのに時間がかかることを理解している場合。リクエストのタイムアウトを増やすか、Webサービスを最適化します。

SoapUIでテストし、Webサービスが応答するのにどのくらい時間がかかりますか。

于 2012-09-28T11:05:14.913 に答える
0

タイムアウトを値 timeout="00:60:00" に設定すると、同様の経験がありました。システムがこれを 0 秒と解釈しているようです。必要に応じて、値を「00:59:00」または「01:00:00」に設定します

于 2013-02-21T16:33:31.177 に答える
0

app.config ファイルに値を入力しても機能しませんでした。ただし、ハードコーディングしてタイムアウト値を増やした場合は機能しました。

DictionaryLookUp.EntityExtractionClient nlp = new 
                             DictionaryLookUp.EntityExtractionClient();
nlp.InnerChannel.OperationTimeout = new TimeSpan(0, 50, 0);
于 2012-10-19T09:13:27.547 に答える