問題タブ [usermanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
48 参照

.net - ブレークポイントを使用してデバッグする場合にのみ、UserManager の「このコンテキストで 2 番目の操作が開始されました」というエラーが発生する

これは私の髪を引っ張っています。どんな助けでも大歓迎です。

.NET Framework 4.6.1 で MVC (5 だと思います) アプリケーションを実行しています。アイデンティティ認証を使用しています。このサイトは約 1 年前に古いコンピューターで作成しました。私は過去1年間、オンとオフに取り組んでいましたが、この問題は一度もありませんでした. それから最近、私は新しいラップトップを手に入れ、GitHub からプロジェクトを複製しました。突然、デバッグ中に UserManager がこの「2 番目の操作」エラーを表示し、それを呼び出す場所をステップスルーするという奇妙な問題が発生しました。私のサイトにはたくさんの場所があります。古いマシンでこれを行ったことは一度もないので、設定を変更する必要があるのか​​ 、それとも古いマシンのコードが偶然に欠落しているのかはわかりませんが、そうではないようです.

UserManager をデフォルトの方法でセットアップしました。これにより、OwinContext の一部として作成されます。

ご覧のとおり、少なくとも私が知る限り、これはすべてかなり標準的なものです。Visual Studio で作成されて以来、このコードに大きな変更を加えたことはないと思います。

呼び出されたときの概念は、親コントローラーに AppUser プロパティを持たせて、データ ストレージ呼び出しを行うために必要な現在のユーザーに関する情報を取得できるようにすることです。この AppUser を取得するために、UserManager と FindByName を呼び出します。

次に、以下の例でその AppUser を呼び出します。

上記の例は、多くの例の 1 つにすぎません。これは、この特定のインスタンスに関するものではありません。ほとんどの場合、サイト内のどこでも選択できます。したがって、この「2 番目の操作」エラーが発生する理由の 1 つは、呼び出しの非同期バージョンを呼び出していないことです。おそらくそうすべきですが、そうではありませんが、それでもこのエラーが発生します。さらに、localhost を使用してデバッグ モードでサイトを実行しても、このエラーは発生しません。サイトで必要な操作はすべて実行でき、問題は発生しません。しかし、ランダムに、デバッグ中にブレークポイントがあり、ステップ実行している場合、操作が失敗し、この「2 番目の操作」例外が発生します。これも、古いコンピューターでは一度も発生しませんでした。インスタンスを停止して再起動すると、すぐにこのエラーが表示されます。IIS Express がタスク バーで実行されていない場合でも、古いインスタンスを引き続き保持します。通常、インスタンスを数回再起動するか、10 分間休憩してから再起動することで、停止させています。しかし、確かに、その呼び出しを行うブレークポイントを介してデバッグすると、エラーが返されます。

私に与えるアイデアや卑劣なキャップはありますか?