ASP.NET MVCアプリをWebホストに展開する際の構成のロックダウンによる内部サーバーエラー
-
06-07-2019 - |
質問
ローカルのWindows Server 2008 / IIS7マシンでASP.NET MVC Webサイトを開発していますが、現在、Webホストプロバイダー ASPnix 。共有Webホスティングサービスを使用していて、ASP.NET MVCをサポートすると主張するIIS7サーバーに配置されています。
ただし、サーバーにアプリケーションをデプロイすると、「内部サーバーエラー」が発生します。
エラーの概要は次のとおりです。
HTTPエラー500.19-内部サーバーエラー
ページの関連する構成データが無効であるため、要求されたページにアクセスできません。
詳細なエラー情報の関連部分は次のとおりです。
モジュール:IIS Webコア
通知:BeginRequest
ハンドラー:まだ決定されていません
エラーコード:0x80070021
構成エラー:この構成セクションは、このパスでは使用できません。これは、セクションが親レベルでロックされている場合に発生します。ロックは、デフォルトで(overrideModeDefault =" Deny")、またはoverrideMode =" Deny"の位置タグによって明示的に設定されます。または従来のallowOverride =" false"。
そして、構成ソースは次のようになります。
144: </modules>
145: <handlers>
146: <remove name="WebServiceHandlerFactory-Integrated"/>
エラーは、web.configファイルに handlers 子セクションを持つ system.webServer セクションがあるという事実に起因しています。 system.webServer セクションは、Visual StudioでASP.NET MVC Webサイトを最初に作成したときにデフォルトで配置された正確な構成セクションです。その上に次のXMLコメントがあります。
<!--
The system.webServer section is required for running ASP.NET AJAX under Internet
Information Services 7.0. It is not necessary for previous version of IIS.
-->
handlers 子セクションを削除すると、500エラーがなくなります。もちろん、このセクションはASP.NET MVCアプリケーションがIIS7で適切に動作するために必要であるため、単純にそれを取得しても他のエラー(ルーティングが機能しないためこの場合は404エラー)しか発生しません。
ASPnixのサポートエンジニアは、ASP.NET MVCがサーバー上のIIS7に適切にインストールおよび構成されていると主張しています。これは私が構築および展開した最初のASP.NET MVCサイトであるため、私はそれらを信じないとは言っていません。ただし、アクセスできないレベルでの構成の問題のように見えるため、この作業を行うためにできることは考えられません。
この問題は、ASP.NET MVCをホスティングプロバイダーに展開しようとする人々に共通する問題のようです。 ASPnixまたは他のWebホスティング会社で何か問題が発生し、うまくいけば解決策を見つけましたか?
ps
奇妙なこと。 Webでこの問題を調査すると、IIS7のapplicationHost.configファイルのoverrideModeDefault属性を&quot; Deny&quot;に設定する必要があると言っている人がたくさんいます。 「許可」へ。ただし、私のローカル開発サーバーでは、これを「拒否」に設定しています。すべてが正常に動作します。それでも、Webホストのサーバー上のapplicationHost.configファイルにはアクセスできません。
解決
IIS管理を開き、メインサーバーノードで、(管理セクションで)開いている機能の委任を選択します
&quot;ハンドラーマッピング&quot; 「読み取り/書き込み」へ「読み取り専用」の代わりに
ホスティングプロバイダーが不必要にIISをロックダウンしているようです。
ローカルIIS 7.5サーバーで問題を再現できました。
グローバル設定のリセットについては、こちらをご覧ください。
他のヒント
アプリケーションを適切に展開したかどうかを確認してください:展開ASP.NETサーバー(IIS 7)
へのリンク http://www.winservermart.com/Howto/HTTP_Error_500_19_IIS_7.aspx 問題を解決しません。 「リセット委任」特定のドメインに対してのみweb.configに例外を作成します。これにより、サイトが機能しますが、システム全体に永続的に設定する方法には応答しません。 解決策を知っており、すべての設定を正しく設定しているため、これは恥ずべきことではありません。ここで他のいくつかのホストを宣伝すると、wh4lから実行しているクライアントがたくさんあり、それらのサーバーがどれほど優れているかを説明しています。
-豚肉