1

global.asax.csのApplication_Startイベントに、初期化コードを追加しました。このコードは、生成されたスレッド(new Thread()を使用して作成された)で実行されます。初期化コードは、Server.MapPathを使用してファイルの物理パスを取得します。ただし、ログファイルにエラーが何度も表示されます。 このコンテキストではサーバー操作を使用できません 。いずれの場合も、例外をキャッチしています。初期化が成功しなくても、私にとっては問題にならないので、初期化は重要ではありません。私の質問は:

  1. サーバーが利用できないというエラーが表示されるのはなぜですか?
  2. 処理された例外により、アプリケーションの通常の実行中に無効なビューステートなどの問題が発生する可能性がありますか。これらの多くに気づきました-ログの後半で無効なビューステート。できないと思います。私が間違っている場合は訂正してください。

ありがとう

ビカス

4

1 に答える 1

1

Server オブジェクトは、HttpContext.Currentつまり現在のリクエストに関連して参照されます。Application_Startその時点でリクエストが存在しないため、利用できないと思われます。スレッドは互いに独立して実行されるため、個別のスレッド内から確実に利用できるわけではありません。したがって、スレッドがアクセスを試みる前に、リクエストが開始または終了している可能性があります。

HostingEnvironment.MapPath()これは静的メソッドであるため、代わりに使用してみてください。

于 2012-01-08T09:49:06.190 に答える