ASP.Net MVC と WebAPI プロジェクトがいくつかあります。それらのほとんどは最新です (MVC 5 / WebAPI 2)。システム全体のセキュリティを統一するためにグローバル フィルター (MVC 用) と委任ハンドラー (WebAPI 用) を実装しているので、セキュリティの前提を再確認してきました。
その文脈で、私はいくつかの記事や投稿 (以下を参照) に出くわしました (以下を参照UseTaskFriendlySynchronizationContext
) 。MVC 5 および WebAPI 2 の新しいプロジェクト テンプレート (および ASP.Net WebForms テンプレート) を使用する VS2013 でも、このアプリ設定がまったく設定されていないため、これは奇妙に思えます。true
false
この設定に関する MSDN ドキュメントは実質的に存在せず、非同期プログラミングに必要であると述べている投稿は、WebForms のコンテキストにあるようです。
だからここに私の質問があります:
- この設定はすべての ASP.Net に適用されますか、それとも ASP.Net のページ ライフサイクルに固有のものですか (あまり使用していません)。
- 最新の非同期プログラミングにとって非常に重要である場合、チュートリアルやテンプレートで参照されないのはなぜですか?
- ConfigureAwait(false) を使用する参照ライブラリで Thread.CurrentPrincipal のクレームを使用すると、問題が発生しますか、それとも ExecutionContext の論理呼び出しコンテキストの流れによって処理されますか? (これまでの私の読書とテストは、そうであることを示しています)
に関して私が見た記事のいくつかを次に示しますUseTaskFriendlySynchronizationContext
。
- Thread.CurrentPrincipal を非同期に設定しますか?
- MSDN の ASP.NET appSettings 要素
- 「UseTaskFriendlySynchronizationContext」の意味は何ですか?
SynchronizationContext
Marcus van Houdt による ASP.NETの理解- Thread.CurrentPrincipal が正しくフローするために「await Task.Yield()」が必要なのはなぜですか?
このすべてがどのように機能するかを理解するのに本当に役立ったいくつかの記事は、言及されていませんUseTaskFriendlySynchronizationContext
: