検索
ホームページphp教程PHP开发IIS7 によって報告される 500.23 エラーの原因の分析と解決策

背景: 今日、会社の端末で関数を開く際に例外が発生し、500 エラーが報告されました。Fiddler を使用してリンクを見つけ、IE で開いたところ、500.23 エラーが報告されました。ASP.NET 設定は、ASP.NET では適用されません。統合ホスティング パイプライン モードが検出されました。背景にはIIS7とtomcat7が統合された環境があり、これを記録します。

HTTP エラー 500.23 - 内部サーバー エラー

統合ホスティング パイプライン モードに適用されない ASP.NET 設定が検出されました。

IIS7 によって報告される 500.23 エラーの原因の分析と解決策

上記のエラーが発生するのはなぜですか?

IIS7 のアプリケーション プールには 2 つのモードがあり、1 つは「統合モード」、もう 1 つは「クラシック モード」です。

クラシック モードは、私たちが使い慣れている IIS 6 の方法です。

統合モードを使用する場合は、カスタム httpModules と httpHandlers の設定ファイルを変更し、それらを セクションと に転送する必要があります。

2 つの解決策:

最初の方法は、アプリケーション プールを構成することです。

IIS7 でアプリケーション プールを構成し、アプリケーション プールのモードを「クラシック」に変更します。その後はすべてが正常になります。図に示すように:

IIS7 によって報告される 500.23 エラーの原因の分析と解決策

IIS7。web.config 構成ファイルを変更する 2 つの方法:

注: web.config パスは C:inetpubwwwrootweb.config です

たとえば、元の設定 (環境に httpModules、httpHandlers ノードがない場合)

<system.web>
............
<httpModules>
<add name="MyModule"type="MyApp.MyModule" />
</httpModules>
<httpHandlers>
<add path="*.myh"verb="GET"type="MyApp.MyHandler" />
</httpHandlers>
</system.web>

IIS7 アプリケーション プールでは、「統合モード」になっているため、次のように変更します:

<system.web>
...........
</system.web>
<system.webServer>
<modules>
<add name="MyModule"type="MyApp.MyModule" /> 
</modules>
<handlers>
<add name="MyHandler"path="*.myh"verb="GET"type="MyApp.MyHandler"preCondition="integratedMode" />
</handlers>
</system.webServer>

(web.config に httpModules、httpHandlers ノードがない場合は、ノード system.webServer:

<validation validateIntegratedModeConfiguration="false" />

エラーを回避するために統合モードの検証を無効にします

IIS ログの場所

IIS 6.0 ログは次の場所に保存されます:

c:windowssystem32logfiles


IIS 7 ログは次の場所に保存されます:

%SystemDrive%inetpublogsLogFiles



テスト後、IIS ログは即座に書き込まれ、IIS のリセットは必要ありません。


IIS 6 と 7 のログは、サイトごとに異なるフォルダーに書き込まれます。場所フォルダーの形式は「w3svc{siteId}」です。


IIS6 では、サイト ID を表示する方法は IIS を介して行われます。


IIS7 では、IIS マネージャーの詳細設定で、ログ フォルダーの名前が使用されます。はサイト ID であり、この ID を使用して LogFiles フォルダー内のどのファイルが表示するサイトに属しているかを見つける必要があります

統合とクラシックの違い


IIS7 アプリケーション プールには 2 つのモードがあります。 1 つは統合モードで、もう 1 つはクラシック モードです。次に、カスタム httpModules と httpHandlers を変更し、それらを セクションと に移動します。 IIS7 と IIS6 の 2 つのモードの違いは? の httpModules> および 設定セクションは無視され、disabledvalidation が設定されている場合、エラーは生成されません。


IIS7.0 クラシック モード: 上記の状況とは異なり、 は無視されます。


クラシック vs 統合

クラシック モード (IIS6 以下の唯一のモード) は、IIS が ISAPI 拡張機能と ISAPI フィルターのみを直接操作するモードです。実際、このモードでは、Asp.net は単なる ISAPI 拡張機能 (aspnet_isapi.dll) です。 IIS は、Asp.net を ISAPI に実装された外部プラグインとして扱い、ブラック ボックスのように動作します (このモードでは、ASP.NET に要求を送信する必要がある場合のみ)。 , Asp.net は、IIS 用の PHP やその他のテクノロジと大きな違いはありません


IIS6.0 以下で動作する唯一のモードはクラシック モードです (ISAPI EXTENSION、ISAPI FILTERS でのみ動作します)。このモードでは、asp.net は、それぞれ ISAPI EXTENSION と ISAPI FILTER を実装する単なるプラグイン (aspnet_isapi.dll、aspnet_filter.dll) です。II の仕事は、特定の要求を Asp.net に転送し、PHP でホストすることだけです。 IIS のプラグインなど。


一方、統合モードは、IIS パイプラインが Asp.net 要求パイプラインと緊密に統合されている (つまり、まったく同じです)、ASP.NET が必要とするすべての要求を認識し、途中で処理することができる IIS7 の新しいモードです。このモードでは、ASP.NET は外部プラグインとして扱われなくなり、IIS に完全に統合され、Asp.net HttpModules は基本的に ISAPI フィルターとほぼ同じ能力を持ちます。このモードでは、Asp.net は基本的に IIS の一部です


ただし、統合モードでは、IIS パイプラインは Asp.net 要求パイプラインと緊密に統合されます。 net はリクエスト パイプライン全体を完全に制御し、アクセスできます。 Asp.net は外部プラグインではなくなり、IIS に完全に統合されました。このモードでは、Asp.net HttpModules と ISAPI Filter は同等の制御権限を持ち、Asp.net HttpHandlers と ISAPI Extension も同等の制御権限を持ちます。つまり、Asp.net はすでに IIS の一部です。


IIS6 と IIS7 の両方を考慮する場合は、web.config の httpHandlers (IIS6 の場合) とハンドラー (IIS7 の場合) で同じ定義を維持できますが、 しないと、IIS7 では定義が繰り返されるためエラーが発生します。

IIS7 が 500.23 エラーを報告する原因分析と解決策に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境