2016-11-02 13 views
0

私はAzureで動作するC#/ MS Bot Frameworkで構築されたボットを持っています。これは正常に動作しますが、AzureのHTTPログでは多数の失敗したHTTPリクエストが表示され、合計で約20%になります。Botフレームワークでエラー500、InvalidOperationException:非同期操作が保留中に非同期モジュールまたはハンドラが完了しました

私は失敗した要求トレースを有効にすると、それは私がログに見たものです:

URL:/ API /メッセージ

未処理の例外が 現在のWeb要求の実行中に生成されました。

I:起源と 例外の場所に関する情報については、例外スタックトレース

[。非同期処理がまだ保留している間に完了した非同期モジュールまたはハンドラ InvalidOperationExceptionが]を用いて同定することができますスタックトレース(空である)を含め、ログから詳細を抽出できませんでした。

ボットもエミュレータで正常に動作します。失敗したリクエストは、一見失敗したリクエストにもかかわらず、ユーザーがボットと正常にやりとりすることができても、Facebook経由でボットと話すときに表示されます。

コードのどの部分がこれを引き起こす可能性があり、他のボットにもこの問題はないようです。

私はcontext.Done(this)を使用してダイアログを終了している可能性がありますが、これはこれを使用する通常の習慣のようです。

コードの一部でこれを引き起こす可能性のあるポインタやアイデア、エラーの詳細を抽出する方法については、ご理解ください。ありがとう。

答えて

0

コードを見ることなく、何が起こっているのかを正確に知るのは難しいですが、例外はasync/await世界ではかなり一般的です。通常は、モジュール/ハンドラの完了と非同期メソッドの完了との間に競合状態が存在することを意味します。

私は非同期メソッドが呼び出されましたが、待たれませんでした。

いくつかの関連読書:

関連する問題