2017-05-11 71 views
2

私は約100秒で要求をタイムアウトしているASP.net Web APIを持っています。 私のアクションメソッドの1つは、リクエストを完了するまでにさらに時間が必要です。Asp.net WebAPIのリクエストタイムアウトを変更する

様々なリンクの上に行くの後、私はすでに、次は完全に非同期であり、それらの値が戻って、同期パイプラインのためにした要求パイプラインとして

A)executionTimeout & ScriptTimeoutに動作しないことを考え出しました。

B)[AsyncTimeout(seconds)]属性、それはMVC Webアプリケーションに対してのみ適用され、ASPのWeb APIは​​

を参照していないとして、このシナリオのためのタイムアウトを制御上の他のアプローチはありますか?

+0

この質問は適用されないため、この質問をトピックとして閉じるよう投票しています。 –

答えて

1

Web APIにタイムアウトが適用されていないと表示されます。クライアント側でタイムアウトが発生しました。 HttpClient.Timeout値を変更した後、それは機能しました。

+0

フランク - あなたはリンクなどを提供できますか?私たちは、WebAPIリクエストがIIS8の「ワーカープロセス」を介して数日間生きているのを見ています。 system.web/executionTimeoutのデフォルト値を使用します。私たちはしばらくしてからそれらを殺したいと思っています。 –

+0

私が知っている価値はありませんが、自動的にWeb API側でリクエストをキャンセルします。これを行う唯一の方法は、クライアント(例えば、HttpClient)がRequest Time Out値を設定することです。要求はクライアント側で取り消され、接続が中止されます。接続が中止されると、サーバーは通知を受け取り、要求の取り消しを通知するASPスタックにバブルを送ります。キャンセルトークンを(APIコントローラのアクションメソッドの1つから)伝播すると、そのトークンが通知されます。 –

関連する問題