[解決済み】ハンドラ「ExtensionlessUrlHandler-Integrated-4.0」のモジュールリストに「ManagedPipelineHandler」という不正なモジュールが存在する。
質問内容
正直なところ、IISで汚い手を使おうとして、これで逃げ切れると思った矢先に、自分の回避策が通用しないことに気づきました。以下は、私が試したことです。
1) ASP.NETアプリケーションに プリローダー を継承したクラスです。 IProcessHostPreloadClient で重い初期化をすべて行い プリロード メソッドを実装しています(アプリケーションは複雑で、巨大なシステムの一部であるため、必要なすべてのサービスへの接続を確立し、いくつかのUnity登録を事前に行うのに約2分必要です)。
2) アプリケーションのシャットダウン(登録解除、接続解除、廃棄など)に関してやらなければならないことがたくさんあります。 グローバル.asax .
3) ユーザーの活動があるときはすべてうまくいきますが(前述のウェブアプリケーションを含むアプリケーションプールが開始された後の最初のリクエストで *Application_Start* が呼ばれ、その後アプリケーションプールの停止またはリサイクルで *Application_End* が呼ばれます)、ユーザーの活動がないときに問題が生じ、48時間(設定された要件)活動した後にアプリケーションが自身を再起動しようとしました。要求がないため、アプリケーションは正式に開始されませんでした。つまり、*Application_End*が呼び出されないため、優雅に停止することができません。
4) さて、ここからが厄介なところです。の末尾にあるコードからGETリクエストを行おうとしました。 プリロード メソッドで、うまくいきました。しかし、この解決策は、うまくいったにもかかわらず、私には悪いように思えました。そこで、いろいろと試してみたのですが、最後に試したのがこれです。
SimpleWorkerRequest swr = new SimpleWorkerRequest(string.Empty, string.Empty, tw);
HttpRuntime.ProcessRequest(swr);
...そして、それは目的を果たしました。*Application_Start*が呼ばれ、(レスポンスを確認したところ、最初のリクエストで表示されるはずだったログインページが含まれていました)アプリケーションプールのシャットダウン時に、*Application_End*で必要な作業を行い、アプリケーションは優雅に終了しました。
しかし
このようにアプリケーションを起動(プリロード、イニシエート)した後、Webブラウザでアプリケーションにアクセスしようとすると、このような現象が発生しました。
<ブロッククオートHTTPエラー 500.21 - 内部サーバーエラー ハンドラ "ExtensionlessUrlHandler-Integrated-4.0" has a bad module "ManagedPipelineHandler" in its module list
これを解明することができません。なぜこのようなことが起こるのか、どのように修正すればよいのか、どなたか教えていただけませんか?
もし、これがわからなければ、最初の解決策(コードからGETリクエストを送る)に戻るつもりですが、何が問題なのか見当もつかないので、この問題は私を悩ませることになるでしょう。
解決方法は?
問題点
を使用しています。 SimpleWorkerRequest を、そのために設計されていないシナリオで使用しています。あなたはそれを使っています IIS内部 . 先のMSDNのリンクを見てみると(強調は私です)。
HttpWorkerRequest 抽象クラスの簡単な実装を提供します。 インターネットインフォメーションサービス(IIS)アプリケーションの外部で ASP.NET アプリケーションをホストするために使用されます。 . SimpleWorkerRequestを直接採用することも、それを拡張することもできます。
また、MSDN のドキュメントで
System.Web.Hosting 名前空間
(
SimpleWorkerRequest
はこの名前空間にあります)、また、上記のようなものが表示されます(再度、強調は私です)。
System.Web.Hosting 名前空間は、マネージド・アプリケーションから ASP.NET アプリケーションをホストするための機能を提供します。 マイクロソフトインターネットインフォメーションサービス (IIS) の外側 .
解決方法
への呼び出しを削除することをお勧めします。
SimpleWorkerRequest
. その代わりに、マイクロソフトのソリューションを使って、ウェブサイトがリサイクルされた後に自動的に起動するようにすることができます。必要なのは、マイクロソフトの
IIS 7.5用アプリケーション初期化モジュール
. 設定方法は複雑ではありませんが、正確なオプションを理解する必要があります。このような理由から、私は
アプリケーション初期化UI(IIS 7.5用
. このUIは、MSDNブロガーによって書かれたものです。
では、マイクロソフトのソリューションは具体的に何をするのでしょうか?IISは、アプリケーションプールが開始された後、あなたのウェブサイトに"get"リクエストを送信します。
関連
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】ソケットのアドレス(プロトコル/ネットワークアドレス/ポート)は、通常1つしか使用できない?
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み] EntityTypeにキーが定義されていないエラー
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?
-
[解決済み] ASP.NET MVC - カスタムIIdentityまたはIPrincipalの設定
-
[解決済み] IISのAppPoolIdentityとファイルシステムの書き込みアクセス権
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み】プログラム実行中に1秒待つ
-
[解決済み】文字列が有効な DateTime " format dd/MM/yyyy " として認識されなかった。
-
[解決済み] DBNullから他の型にオブジェクトをキャストすることができない
-
[解決済み] [Solved] アセンブリ System.Web.Extensions dll はどこにありますか?
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】値をNULLにすることはできません。パラメータ名:source
-
[解決済み】WebResource.axdとは何ですか?