2017-06-12 10 views
0

私たちは、関数が、第三者との通信データを取得し、その更新を別のアプリケーションに送信しGlabal.asax予期しないThreadAbortExceptionの

から(タイマーを使用して)5分のインターバルの後に関数を呼び出すアプリケーションを持っていますデータベース。

第4回または第5回に関数が呼び出された後、サードパーティアプリケーションからデータを受け取っているときにThreadAbortExceptionが呼び出されます。これによりアプリケーション全体が停止します。

ThreadAbortExceptionの原因となるResponse.End、Response.Redirect、Server.Transferは使用しません。

アプリケーションプールが再起動/リサイクルされる可能性があります。しかし、これは何が原因でしょうか? タイムアウトを0に変更しました。タイムアウトは決してタイムアウトしません。しかし、私はまだ例外を取得しています。

誰にでも何か提案できますか?

ありがとうございました。

+0

は[asp.netでバックグラウンドタスクを実行する](HTTPS://www.hanselman。 com/blog/HowToRunBackgroundTasksInASPNET.aspx) –

+0

私は認識していません。それを見つける方法?そして解決策は何ですか? – Dhanashree

+0

実際のリクエストに関係のないコードを定期的に実行しようとしていますか?そうであれば、バックグラウンドタスクになります。私はそれを行う様々な方法を議論するブログ記事をリンクしてきました。何らかの形の 'Timer'(あなたが使用しているものは不明です)を使用することはリストにありません。 –

答えて

0

私はWebRequestオブジェクトを使用してサードパーティにリクエストしていました。 問題の解決策は、要求のタイムアウトを変更することです。私はそれを無限に変更しました。

WebRequest request = WebRequest.Create(serviceUrl); 
request.Method = "POST"; 
request.Timeout = System.Threading.Timeout.Infinite; 

これは、似たような状況に遭遇した人に役立つことを願っています。私は同僚に助けられました。

編集 - 私もMSDNに興味深い記事発見 - あなたがしようとしているようですね Understanding WebRequest Problems and Exceptions

関連する問題