特定の特定の条件で使用すると、現在の状態が有効であることを確認するために Web サービス呼び出しを実行する必要があるアクション フィルターがあります。これは当初、async/await の理想的な候補のように思えましたが、問題が発生しました。
/Test/FilteredAction へのリクエストを想定します。
- MyCustomActionFilter の実行が開始されます
- 最初の「await」ステートメントに到達
- TestController.FilteredAction の実行が開始されます
- MyCustomActionFilter が実行を再開します
従来、アクション フィルターが実行を再開し、コントローラー アクションが実行を開始する前に完了することを期待していましたが、これは起こりません。
これは、次を使用しているためだと思います。
public class MyCustomActionFilter : ActionFilterAttribute
{
public override **async** void OnActionExecuting(FilterContext context)
{
var foo = await WebServiceCall();
}
}
私の質問は次のとおりだと思います: MVC 4 に組み込まれた非同期対応アクション フィルター クラスはありますか、それともここの呼び出しをブロックするだけですか?