Webサイトの展開:500-内部サーバーエラー


189

ASP.NETアプリケーションを展開しようとしています。サイトをIISに展開しましたが、ブラウザーでアクセスすると、次のように表示されます。

サーバーエラー

500内部サーバーエラー。

探しているリソースに問題があり、表示できません。

web.configをいじり回した後、私は得ました:

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

このサーバーエラーの背後にある実際の問題を確認するにはどうすればよいですか?


1
MVCアプリケーションのワイルドカードマッピングがディレクトリにあることを確認してください...
sajoshi

回答:


297

まず、これはWebメッセージの詳細なエラーを有効にして表示する必要があります。これは、セキュリティ上の理由で実際に何が起こっているかについての情報を提供しない一般的なメッセージであるためです。

詳細なエラーにより、ここで実際の問題を見つけることができます。

また、サーバーブラウザを実行できる場合は、サーバーがローカルであることをサーバーが認識して表示するため、エラーの詳細が表示されます。または、イベントビューアを使用してサーバーのログ読み取ることができる場合は、エラーの詳細も表示されます。

上のIIS 6

<configuration>
    <system.web>
        <customErrors mode="Off"/>
        <compilation debug="true"/>
    </system.web>
</configuration>

IIS 7の場合

<configuration>
    <system.webServer>
        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true"/>
    </system.webServer>
    <system.web>
        <customErrors mode="Off"/>
        <compilation debug="true"/>
    </system.web>
</configuration>

注:Debug = trueを回避できます。しばらくの間カスタムエラーを閉じて、詳細なエラーページを取得するだけです。

参照:Go Daddyのヘルプ記事でWindowsカスタムエラーメッセージを有効にする。

また、これは役立ちます:(IISからの)詳細なエラーメッセージを有効にする方法


9
投稿ありがとうございます!私のためにそれをした部分は次のとおりでした:<httpErrors errorMode = "Detailed" />
jaseeey

@codemonkeyliketab同じである必要があります...または類似しています...コンピューターでiis expressを実行する場合は、EventViewerを開いてください...
Aristos

4
run the browser on the server私のために働きました。ありがとう兄弟
Rajshekar Reddy

1
@Learningはい、あります-一部のエラーを見つけてアプリを実行できるようにするために、短期間のみ詳細エラーを有効にしてから、アプリを再び閉じます
Aristos

1
おかげで、IISからの詳細なエラーメッセージを有効にできました。
Vadim Tofan

25

この問題で髪の毛を抜いていた。ルートweb.configファイルに次のエントリが含まれていることを確認すると、修正されました。

<configuration>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
  </system.webServer>
</configuration>

既存のXML要素がある場合は、これを既存のXML要素に追加する必要があることに注意してください。要素の複数のコピーを作成することはできないため、ファイルの最後に追加することはできません。


9

私にとって、web.configの次のコードが原因でした。私がそれを削除したとき、ウェブサイトはうまくいきました。

  <staticContent>
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
  </staticContent>

1
ありがとう..私のために働いたが、ビデオを表示するためにそのmimeMapが必要ですか?
panky sharma

9

godaddy.ocm共有ホスティングにASP.NET MVC 3.0アプリケーションをデプロイするときに、この「500内部サーバー」エラーをようやく解決しました。

どういうわけか、参照されているDLLファイルのバージョンとfileに記載されているバージョンに不一致がありましたweb.config

私は様々なフォーラムで言及されたすべてのオプションを試しました。誰も同じ種類の修正を提案しましたが、何の助けにもなりませんでしたが、どういうわけか私のシナリオではうまくいきませんでした。2日間頭をたたいてやっと。すべてのDLLファイル参照を削除し、プロジェクトからweb.cofig(ローカルコピーを作成)を削除して、アプリケーションにエラーをスローさせ、DLLファイルを1つずつ追加してlocal = trueにコピーを作成することにしました。

すべてのDLLファイルを追加した後、新しいASP.NET MVCアプリケーションを作成し、新しいアプリケーションのweb.configを実際のアプリケーションにコピーしました。したがって、実際のアプリケーションには新しいweb.configが追加され、保存したweb.configのローカルコピーから接続文字列とその他の参照をコピーしました。

アプリケーションをコンパイルしてローカルフォルダーに公開し、公開フォルダーをgoDaddyにFTPで送信しました。

それはうまくいき、最後に私の問題は解決されました。


私のエラーは以下によって解決されました:stackoverflow.com/questions/11359957/…Elmahをインストールする必要もありました
G

7

私の場合、web.configファイルに誤りを入れました。アプリケーションキーはどういうわけか<appSettings>タグの下に置かれました。しかし、なぜそれが構成エラーを表示しないのでしょうか。エラー500は、問題を調査するには一般的すぎます。


ここでも同じです。「詳細なエラーを表示」をtrueに設定しましたが、web.configが誤ってサブディレクトリにコピーされ、奇妙なエラーが発生しました。
Avni Yayin

7

私が最初に公開してから、HTMLのみを提供する非常に単純なサイトを実行しようとしました。「内部サーバーエラーが発生したため、ページを表示できません。」

問題:Visual Studioでサイトを.NET 3.5に設定しましたが(Webサイトプロジェクトを右クリック->プロパティページ->ビルド)、AzureのWebサイトを.NET 4.0として構成しました。おっとっと!Azureで3.5に変更しましたが、うまくいきました。


5

他の提案に加えて、変更することを確認existingResponseの属性httpErrorsにノードをAutoからReplace、または完全にそのプロパティを削除します。

<httpErrors existingResponse="Replace" />
                              ^^^^^^^ not going to work with this here

4

また、IISは、物理ホームディレクトリに十分なアクセス許可がない場合(つまり、IIS_IUSRSにアクセスできない場合)、イベントログヒントなしでステータスコード500を報告します。


3

サーバーエラー500-内部サーバーエラー。探しているリソースに問題があり、表示できません。ゴダディ。ホスティング-ウェブ-エコノミー-Windows Plesk

私の場合、私はこのコードを置き換えます:

<configuration> 
  <system.webServer> 
    <httpErrors errorMode="Detailed" /> 
    <asp scriptErrorSentToBrowser="true"/> 
  </system.webServer> 
  <system.web> 
    <customErrors mode="Off"/>
    <compilation debug="true" targetFramework="4.0"/>
  </system.web> 
</configuration>

次に、フレームワーク3.5をフレームワーク4に変更します。詳細なエラーが表示されます。私はコードを削除します:

<httpModules></httpModules>

それは私の問題を解決しました。


3

IIS 8の場合エラー内容を表示するためにcustomErrors = Offを変更する以外に、実行する追加の手順があります

<system.web>
   <customErrors mode="Off" />
</system.web>
<system.webServer>
   <httpErrors existingResponse="PassThrough" errorMode="Detailed"/>
</system.webServer>

ラウルはこのリンクの質問に回答しましたラウルによるIIS8カスタムエラーを無効にする


あなたはクロージングを逃しました/「詳細」の後
manuel-84

このソリューションは、IIS 10.0.14393.0に必要なものでした。
マーカスパーソンズ

2

おそらく、web.configファイルが間違っているか、タグが不足しています。.NET 4の正しい構成タグを使用して問題を解決しました。

<system.web>
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
        <assemblies>
            <add assembly="System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
            <add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            <add assembly="System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        </assemblies>
    </compilation>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
        <namespaces>
            <clear/>
            <add namespace="System"/>
            <add namespace="System.Collections"/>
            <add namespace="System.Collections.Specialized"/>
            <add namespace="System.Configuration"/>
            <add namespace="System.Text"/>
            <add namespace="System.Text.RegularExpressions"/>
            <add namespace="System.Web"/>
            <add namespace="System.Web.Caching"/>
            <add namespace="System.Web.SessionState"/>
            <add namespace="System.Web.Security"/>
            <add namespace="System.Web.Profile"/>
            <add namespace="System.Web.UI"/>
            <add namespace="System.Web.UI.WebControls"/>
            <add namespace="System.Web.UI.WebControls.WebParts"/>
            <add namespace="System.Web.UI.HtmlControls"/>
        </namespaces>
    </pages>
    <authentication mode="None"/>
</system.web>

2

サーバーのファイルとフォルダーのアクセス許可も重要であることに気付きました。Linuxオペレーティングシステムからファイルをアップロードしましたが、通常、読み取りと書き込みの権限が制限されています。そのため、アップロードしても、権限はローカルマシンと同じままです。

同じエラーが発生し、アップロードしたフォルダーのアクセス許可を変更しただけで、エラーは発生しませんでした。

それが誰かを助けることを願っています。


この回答は基本的に2014年7月の回答と同じではありませんか?
Wai Ha Lee

1

500内部エラー
Windowsホスティングエラー

Godaddyホスティングの問題

同じ問題に直面してきましたが、問題は解決しました。このホスティングで常に使用します。これは機能します。

また、web.configファイルに加えたい変更をすべて行うことをお勧めします。ホスティングプロバイダーが使用を許可していない正確な問題や機能を見つけることができるように、1つずつ実行して、ライブドメインで同じことをテストしてください。

<?xml version="1.0"?>

<configuration>
    <system.web>
        <trust level="Medium"/>
        <compilation debug="true" targetFramework="4.5">
            <assemblies>
                <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            </assemblies>
        </compilation>

        <httpRuntime targetFramework="4.5" />
        <sessionState mode="InProc" cookieless="false" timeout="90" />
        <authentication mode="Forms">
            <forms loginUrl="default.aspx"  
                   defaultUrl="default.aspx"
                   protection="All"
                   cookieless="UseCookies"
                   slidingExpiration="false"
                   timeout="30"
                   name="aeon.corpusjuris.in" />
        </authentication>

        <customErrors 
            mode="Off" 
            defaultRedirect="errorpage.aspx">

            <error statusCode="403" redirect="errorpage.aspx"/>
            <error statusCode="404" redirect="errorpage.aspx"/>
        </customErrors>

        <!--  <httpModules>
                <add name="HTTPCaching" type="HTTPCaching"/>
            </httpModules>
        -->
    </system.web>

    <runtime>
        <performanceScenario value="HighDensityWebHosting"  />
    </runtime>

    <system.webServer>
        <!--  <modules runAllManagedModulesForAllRequests="true">
                <add name="HTTPCaching" type="HTTPCaching"/>
            </modules>
        -->

        <defaultDocument>
            <files>
                <clear />
                <add value="default.aspx" />
            </files>
        </defaultDocument>

        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true"/>

        <staticContent>
            <clientCache cacheControlCustom="public"
                         cacheControlMaxAge="60:00:00"
                         cacheControlMode="UseMaxAge" />
        </staticContent>
    </system.webServer>

    <system.web.extensions>
         <scripting>
             <webServices>
                 <jsonSerialization maxJsonLength="90000000">
                 </jsonSerialization>
             </webServices>
         </scripting>
    </system.web.extensions>

</configuration>

私の場合、エラーはweb.configの<httpRuntime enableVersionHeader = "false" />が原因でした
b3wii

1

カスタムHttpHandlerを使用している(つまり、を実装しているIHttpModule)場合は、そのErrorメソッドの呼び出しを検査していることを確認してください。

次のように、ローカルデバッグ中にハンドラに実際のプロパティHttpExceptions(有用なMessageプロパティがあります)をスローさせることができます。

    public void Error(object sender, EventArgs e)
    {
        if (!HttpContext.Current.Request.IsLocal)
            return;
        var ex = ((HttpApplication)sender).Server.GetLastError();
        if (ex.GetType() == typeof(HttpException))
            throw ex;
    }

また、例外を確認してくださいInnerException


1

500内部サーバーエラーは、いくつかの理由で発生する可能性があります。最初の理由は、web.configファイルが適切に作成されていないことである可能性があります。これは、web.configファイル内のタグの一部が抜けていることを意味します。次に、このエラーはコードの問題が原因である可能性があります。このエラーの原因となっているWebアプリケーションのコンポーネントを確認するには、web.configファイルのアプリケーション設定を確認します。ダイアグラムを使用した500内部サーバーエラーの解決と追跡の詳細を以下に示します。


このドメイン登録は2018年6月15日に有効期限が切れました。
パトリシア

リンクがマルウェアを処理しています。リンクを削除しました
リアム

0

アカウントがIIS 7を使用していることを確認してください。詳細については、WindowsホスティングアカウントのIIS設定のカスタマイズを参照してください。Windows IIS 7ホスティングアカウントのパイプラインモードの変更の指示に従ってください。統合パイプラインモードを選択します。[プロジェクト参照]セクションで、次のアセンブリの[ローカルをコピー]をTrueに設定します。

System.Web.Abstractions
System.Web.Helpers
System.Web.Routing
System.Web.Mvc
System.Web.WebPages

次のアセンブリをプロジェクトに追加し、ローカルのコピーをTrueに設定します。

Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
Publish your application.

0

場合によっては、.dllアセンブリの1つがサーバーに正しく登録されていないことが原因である可能性があります。

たとえば、OfficeがインストールされているローカルコンピューターでC#Excel Webアプリケーションを正常に実行できますが、サーバーにOfficeスイートがインストールされていないため、サーバーエラーが発生し、サーバーエラーが発生します。


0

この可能性がある人(VPSホスティングではなくWebホスティング):

リモートデスクトップ経由でホスティングサーバーに接続します。リモートデスクトップからWebブラウザーを開くと、エラーの詳細な説明が表示されます。

web.configを変更したり、詳細を他の人に公開したりする必要はありません。


0

IIS 8.5を使用している場合、ApplicationPool ID設定をApplicationPoolIdからNetworkServiceに変更する必要がある場合があります。

問題のアプリケーションプールを右クリックし、[詳細設定]をクリックして、IDまでスクロールします。IDはおそらくApplicationPoolIdentityに設定されます。ボタン(..)をクリックし、代わりにドロップダウンリストからNetworkServiceを選択します。

また、それが.NET 2.0アプリケーションである場合、アプリプールで4.0フレームワークを参照していないことを確認してください。


0

web.configファイルを変更する前に、使用している.NET Frameworkバージョンが正確に(つまり、4.5!= 4.5.2)、GoDaddy設定(のASP.Net設定)と同じであることを確認しますPlesk panel。これにより、web.configファイルが正しいフレームワークに自動的に変更されます。

また、今のところ(16年1月)、およびでGoDaddy動作することにも注意してください。Visual Studioで使用するには、それ以降である必要があります。2015年でない場合は、.NET Framework 4.5.2開発者パッケージをダウンロードしてインストールする必要があります。 それでも機能しない場合は、はい。次のステップは、詳細なエラー報告を有効にしてデバッグできるようにすることです。ASP.Net 3.54.5.24.5.22012


0

最近同じ問題が発生しました。サーバーのディスク容量がいっぱいでした。スペースをいくつか空けることで問題は解決しました。



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.