web-dev-qa-db-ja.com

サーバーで内部サーバーエラーが発生したため、ページを表示できません

IIS 7を使用してローカルマシンにWebサイトを正常にインストールしました。しかし、ライブサーバーに展開すると、次のエラーが発生しました。

「内部サーバーエラーが発生したため、ページを表示できません」他には何もありません。

ライブで同じIIS 7を使用し、エラーページモジュールでDetailed errorsを持つように設定しますが、同じままです。理由は何ですか?

ありがとう

39
progproger

このエラーが発生したのは、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つずつ削除して、必要なものとアプリを強制終了するものを確認することです!

54
mike nelson

最善の最初のアプローチは、次のようにweb.configファイルを介して詳細なエラーメッセージを有効にすることです。

<configuration>
    <system.webServer>
        <httpErrors errorMode="Detailed"></httpErrors>
    </system.webServer>
</configuration>

これを実行した後、サーバーからより詳細なエラーメッセージを取得する必要があります。

私の特定の場合、より詳細なエラーは、web.configファイルの<defaultDocument>セクションが、web.configを配置したフォルダーレベルで許可されていないことを示していました。 「この構成セクションはこのパスでは使用できません。これは、セクションが親レベルでロックされている場合に発生します。ロックはデフォルトで(overrideModeDefault = "Deny")、またはoverrideMode = "Deny "または従来のallowOverride =" false "。

25
Eric Barr

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を確認します。

6
Mickael LY

私はそれを修正しました。次のセクションがありましたin web.config

httpErrors existingResponse="PassThrough"

削除するとrealエラーが発生しました

3
progproger

web.configでこの行をコメントした後、動作するようです

<compilation debug="true" targetFramework="4.5.2" />
1
Sulyman

私の場合、Web.configでhttpErrorsなどを設定しても、問題を特定するのに役立ちませんでした。

代わりに私がやった:

  1. エラーが発生したWebサイトの「失敗した要求トレース」をアクティブにします。
  2. HTTPエラー350〜999(念のため)のトレースを構成しましたが、500が疑われました。
  3. エラーのあるURLを再度呼び出しました。
  4. ログフォルダー(私の場合は「%SystemDrive%\ inetpub\logs\FailedReqLogFiles」)で監視されています。
  5. Internet ExplorerでXMLファイルの1つを開きました。

その後、詳細な例外情報を含むエントリを見ました。私の場合は

\?\ C:\ Websites\example.com\www\web.config(592):一意のキー属性「fileExtension」が「.json」に設定されたタイプ「mimeMap」の重複コレクションエントリを追加できません

私は今それを解決し、エラーを修正することができました。その後、「Failed Request Tracing」を再び無効にしました。

1
Uwe Keim

このページでは、AzureでWebアプリを実行しています。

内部サーバーエラーが発生したため、ページを表示できません。

Web.configでapplicationInitializationを適用したため、この問題に遭遇しました。

<applicationInitialization
    doAppInitAfterRestart="true"
    skipManagedModules="true">
    <add initializationPage="/default.aspx" hostName="myhost"/>
</applicationInitialization>

Azureで実行している場合、 サイトスロットを確認してください 。ステージングスロットのページをウォームアップしてから、プロダクションスロットにスワップする必要があります。

1
Vishal

このstackoverflowエントリがフレーズで上位にランクされているためにヒットした場合:

内部サーバーエラーが発生したため、ページを表示できません。

この正確なエラーメッセージの個人的な状況では、.NET APIでpythonを使用できると考えてpython 2.7をオンにしました。 Visual Studio Pro 2013からVanillaバージョンのAPIまたはMVCをデプロイしようとしたときに、その正確なエラーメッセージが表示されました。AzureクラウドWebアプリにデプロイしていました。

これが私の同じ経験を持つ人を助けることを願っています。これを見つけるまでpythonをオフにすることすら考えていませんでした suggestion

0
SamMonk