私はWCFを使用してSilverlightアプリケーションを開発しています。
問題は、次のような例外がスローされる場合があることです。
「 'http:// localhost:1276/Foo.svc'へのHTTPリクエストが、割り当てられたタイムアウトを超えました。この操作に割り当てられた時間は、より長いタイムアウトの一部であった可能性があります。」
では、どうすればタイムスパンを増やすことができますか?以下のように、webconfigおよびservice.clientconfigファイルで受信タイムアウトの使用を提案している人もいます。
<bindings>
<customBinding >
<binding name="customBinding0" receiveTimeout="02:00:00" >
<binaryMessageEncoding maxReadPoolSize="2147483647" maxWritePoolSize="2147483647" maxSessionSize="2147483647" />
<httpTransport maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" transferMode="Buffered"/>
</binding>
</customBinding>
</bindings>
receiveTimeoutプロパティの最大値はいくつですか?
TimeSpanのMaxValueが1,000万日を超えているため、ReceiveTimeoutがその設定の最大値を超えているという問題ではないと思います。代わりに、設定が有効になっていないと思います。
このブログ投稿 :ごとに、サーバー側とクライアント側の両方でタイムアウト値を増やしてみてください。
サーバー上(web.config内)
<binding name="customBinding0" receiveTimeout="00:10:00" sendTimeout="00:10:00" openTimeout="00:10:00" closeTimeout="00:10:00">
クライアント上(ServiceReferences.ClientConfig内)
<binding name="CustomBinding_DesignOnDemandService" receiveTimeout="00:10:00" sendTimeout="00:10:00" openTimeout="00:10:00" closeTimeout="00:10:00">
へのHTTPリクエストが割り当てられたタイムアウトを超えました。この操作に割り当てられた時間は、より長いタイムアウトの一部であった可能性があります。
この問題を修正するために時間値を設定する3つの場所…
Web.Config
<httpRuntime executionTimeout="600" />
(これは秒なので、ここでは10分です)。 httpRuntimeの詳細については、こちらをご覧ください。
Web.Configバインディング要素上
<binding name="customBinding123" receiveTimeout="00:10:00" sendTimeout="00:10:00" openTimeout="00:10:00" closeTimeout="00:10:00" />
System.serviceModel内のServerReferences.ClientConfigバインディング要素
<binding name="CustomBinding" receiveTimeout="00:10:00" sendTimeout="00:10:00" openTimeout="00:10:00" closeTimeout="00:10:00" />
数日前、同じエラーメッセージが表示されました。このスレッドを見つけましたが、さまざまなタイムアウトプロパティを増やし始める前に、クライアントマシンのウイルス対策ソフトウェアを確認しました。それはNODでした。新しいNOD(およびおそらく他のAV)には、ポートフィルター/ブロックの可能性があります。 80/443ポートのブロックをオフにし、クライアントはタイムアウトエラーメッセージなしで接続しました。