オブジェクト(この場合は "printJob")をサービスに送信するアプリケーションがあります。私たちが持っている取引の量によっては、このプロセスにしばらく時間がかかることがあります。サービスが何をしたら、アプリケーションに "PrintJobID"を返します。WCFタイムアウト問題
PrintGatewayClient printClient = new PrintGatewayClient();
PrintService.ServiceJob printJob = new PrintService.ServiceJob();
printJob.ServicePrintItems = checkList.ToArray();
try
{
currentBatch.PrintJobID = printClient.SubmitPrintJob(printJob);
PaymentBatchesGateway.Update(currentBatch);
}
catch (System.Exception ex)
{
throw ex;
}
printClient.Close();
appliation待機待機のprintclientは、ジョブのフィニッシュと「PrintJobID」の整数を受信するためには、そのIDを使用してテーブルを更新します。私はnetTcpBindingで私たちのweb.configファイルを見てきました
The request channel timed out while waiting for a reply after 00:04:59.9062464. 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.
::私は00のアウトの時間を見つけることができませんでした
<netTcpBinding>
<binding name="NetTcpBinding_IPrintGateway" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="02:00:00" sendTimeout="02:00:00"
transactionFlow="false" transferMode="Buffered"
transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard" listenBacklog="10"
maxBufferPoolSize="524288" maxBufferSize="50000000" maxConnections="10"
maxReceivedMessageSize="50000000">
<readerQuotas maxDepth="5000" maxStringContentLength="150000"
maxArrayLength="16384" maxBytesPerRead="50000000"
maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false" />
<security mode="None">
<transport clientCredentialType="None" protectionLevel="None" />
<message clientCredentialType="None" />
</security>
</binding>
<netTcpBinding>
<client>
<endpoint address="http://server/printgateway/PrintGateway.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IPrintGateway"
contract="PrintService.IPrintGateway"
name="BasicHttpBinding_IPrintGateway" />
</client>
大きなバッチが実行されている場合しかし、我々は次のエラーを取得します:05:00コードのどこにいても。誰でもこの時間を延長する方法を説明して教えてください。サーバー上のweb.configのコードでこれを行うことはできますか?
ありがとうございました!
私は特にWCFに精通していないので、その5分のタイムアウトがどこから来ているのかわかりません。しかし、テストのために、のcloseTimeout、openTimeout、receiveTimeout、およびsendTimeoutの値をもっと上げようとしましたが、例外がまだ発生しているかどうかを確認しましたか?私はまたあなたが適切なバインディングオブジェクトを作成することができると信じて、binding.SendTimeout = TimeSpan.FromMinutes(60); (他のタイムアウト値と同様に)をコード内で使用し、サービスクライアントの作成時にそのオブジェクトを使用します。 –
Dan