IIS 7を使用してローカルマシンにWebサイトを正常にインストールしました。しかし、ライブサーバーに展開すると、次のエラーが発生しました。
「内部サーバーエラーが発生したため、ページを表示できません」他には何もありません。
ライブで同じIIS 7を使用し、エラーページモジュールでDetailed errors
を持つように設定しますが、同じままです。理由は何ですか?
ありがとう
このエラーが発生したのは、web.configの重複した静的コンテンツMIMEタイプが原因でした。
このエラーは、静的ファイルでのみ返されていました。たとえば、画像、CSS、JSファイルはすべてこのエラー(テキスト自体、応答内の他のHTMLまたはテキストなし)を言っていました。
これをデバッグする方法は、静的コンテンツの下でWeb設定を調べることです。ここでは、jsonファイル拡張子がロードされています。これはIIS7で必要でしたが、jsonがサーバーレベルでプリロードされるため、IIS8で使用するとアプリが強制終了されます。
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
解決策は、これらのmimeTypeエントリを一度に1つずつ削除して、必要なものとアプリを強制終了するものを確認することです!
最善の最初のアプローチは、次のようにweb.configファイルを介して詳細なエラーメッセージを有効にすることです。
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed"></httpErrors>
</system.webServer>
</configuration>
これを実行した後、サーバーからより詳細なエラーメッセージを取得する必要があります。
私の特定の場合、より詳細なエラーは、web.configファイルの<defaultDocument>セクションが、web.configを配置したフォルダーレベルで許可されていないことを示していました。 「この構成セクションはこのパスでは使用できません。これは、セクションが親レベルでロックされている場合に発生します。ロックはデフォルトで(overrideModeDefault = "Deny")、またはoverrideMode = "Deny "または従来のallowOverride =" false "。
Web.configを変更して、サーバーエラーの詳細を表示します。
<system.web>
<customErrors mode="Off" />
</system.web>
また、次のhttpErrorsセクションを削除/コメントアウトする必要がある場合があります
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="404" />
<error statusCode="404" path="/Error/Error404" responseMode="ExecuteURL" />
<remove statusCode="500" />
<error statusCode="500" path="/Error/Error500" responseMode="ExecuteURL" />
<remove statusCode="403" />
<error statusCode="403" path="/Error/Error403" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
サーバーエラーが直接ある場合、私の経験から、これはアセンブリバージョンの不一致が原因である可能性があります。
Web.configで宣言されているものと、binフォルダーのプロジェクトの実際のddlを確認します。
私はそれを修正しました。次のセクションがありましたin web.config
:
httpErrors existingResponse="PassThrough"
削除するとrealエラーが発生しました
web.configでこの行をコメントした後、動作するようです
<compilation debug="true" targetFramework="4.5.2" />
私の場合、Web.configでhttpErrors
などを設定しても、問題を特定するのに役立ちませんでした。
代わりに私がやった:
その後、詳細な例外情報を含むエントリを見ました。私の場合は
\?\ C:\ Websites\example.com\www\web.config(592):一意のキー属性「fileExtension」が「.json」に設定されたタイプ「mimeMap」の重複コレクションエントリを追加できません
私は今それを解決し、エラーを修正することができました。その後、「Failed Request Tracing」を再び無効にしました。
このページでは、AzureでWebアプリを実行しています。
内部サーバーエラーが発生したため、ページを表示できません。
Web.configでapplicationInitializationを適用したため、この問題に遭遇しました。
<applicationInitialization
doAppInitAfterRestart="true"
skipManagedModules="true">
<add initializationPage="/default.aspx" hostName="myhost"/>
</applicationInitialization>
Azureで実行している場合、 サイトスロットを確認してください 。ステージングスロットのページをウォームアップしてから、プロダクションスロットにスワップする必要があります。
このstackoverflowエントリがフレーズで上位にランクされているためにヒットした場合:
内部サーバーエラーが発生したため、ページを表示できません。
この正確なエラーメッセージの個人的な状況では、.NET APIでpythonを使用できると考えてpython 2.7をオンにしました。 Visual Studio Pro 2013からVanillaバージョンのAPIまたはMVCをデプロイしようとしたときに、その正確なエラーメッセージが表示されました。AzureクラウドWebアプリにデプロイしていました。
これが私の同じ経験を持つ人を助けることを願っています。これを見つけるまでpythonをオフにすることすら考えていませんでした suggestion 。