ASP.NETアプリケーションを展開しようとしています。サイトをIISに展開しましたが、ブラウザーでアクセスすると、次のように表示されます。
サーバーエラー
500内部サーバーエラー。
探しているリソースに問題があり、表示できません。
web.configをいじり回した後、私は得ました:
内部サーバーエラーが発生したため、ページを表示できません。
このサーバーエラーの背後にある実際の問題を確認するにはどうすればよいですか?
ASP.NETアプリケーションを展開しようとしています。サイトをIISに展開しましたが、ブラウザーでアクセスすると、次のように表示されます。
サーバーエラー
500内部サーバーエラー。
探しているリソースに問題があり、表示できません。
web.configをいじり回した後、私は得ました:
内部サーバーエラーが発生したため、ページを表示できません。
このサーバーエラーの背後にある実際の問題を確認するにはどうすればよいですか?
回答:
まず、これはWebメッセージの詳細なエラーを有効にして表示する必要があります。これは、セキュリティ上の理由で実際に何が起こっているかについての情報を提供しない一般的なメッセージであるためです。
詳細なエラーにより、ここで実際の問題を見つけることができます。
また、サーバーでブラウザを実行できる場合は、サーバーがローカルであることをサーバーが認識して表示するため、エラーの詳細が表示されます。または、イベントビューアを使用してサーバーのログを読み取ることができる場合は、エラーの詳細も表示されます。
<configuration>
<system.web>
<customErrors mode="Off"/>
<compilation debug="true"/>
</system.web>
</configuration>
<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からの)詳細なエラーメッセージを有効にする方法。
run the browser on the server
私のために働きました。ありがとう兄弟
私にとって、web.configの次のコードが原因でした。私がそれを削除したとき、ウェブサイトはうまくいきました。
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
</staticContent>
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で送信しました。
それはうまくいき、最後に私の問題は解決されました。
私の場合、web.config
ファイルに誤りを入れました。アプリケーションキーはどういうわけか<appSettings>タグの下に置かれました。しかし、なぜそれが構成エラーを表示しないのでしょうか。エラー500は、問題を調査するには一般的すぎます。
サーバーエラー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>
それは私の問題を解決しました。
IIS 8の場合エラー内容を表示するためにcustomErrors = Offを変更する以外に、実行する追加の手順があります。
<system.web>
<customErrors mode="Off" />
</system.web>
<system.webServer>
<httpErrors existingResponse="PassThrough" errorMode="Detailed"/>
</system.webServer>
ラウルはこのリンクの質問に回答しましたラウルによるIIS8カスタムエラーを無効にする
おそらく、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>
サーバーのファイルとフォルダーのアクセス許可も重要であることに気付きました。Linuxオペレーティングシステムからファイルをアップロードしましたが、通常、読み取りと書き込みの権限が制限されています。そのため、アップロードしても、権限はローカルマシンと同じままです。
同じエラーが発生し、アップロードしたフォルダーのアクセス許可を変更しただけで、エラーは発生しませんでした。
それが誰かを助けることを願っています。
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>
カスタム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
。
500内部サーバーエラーは、いくつかの理由で発生する可能性があります。最初の理由は、web.configファイルが適切に作成されていないことである可能性があります。これは、web.configファイル内のタグの一部が抜けていることを意味します。次に、このエラーはコードの問題が原因である可能性があります。このエラーの原因となっているWebアプリケーションのコンポーネントを確認するには、web.configファイルのアプリケーション設定を確認します。ダイアグラムを使用した500内部サーバーエラーの解決と追跡の詳細を以下に示します。
アカウントが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.
場合によっては、.dllアセンブリの1つがサーバーに正しく登録されていないことが原因である可能性があります。
たとえば、OfficeがインストールされているローカルコンピューターでC#Excel Webアプリケーションを正常に実行できますが、サーバーにOfficeスイートがインストールされていないため、サーバーエラーが発生し、サーバーエラーが発生します。
IIS 8.5を使用している場合、ApplicationPool ID設定をApplicationPoolIdからNetworkServiceに変更する必要がある場合があります。
問題のアプリケーションプールを右クリックし、[詳細設定]をクリックして、IDまでスクロールします。IDはおそらくApplicationPoolIdentityに設定されます。ボタン(..)をクリックし、代わりにドロップダウンリストからNetworkServiceを選択します。
また、それが.NET 2.0アプリケーションである場合、アプリプールで4.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.5
4.5.2
4.5.2
2012
別の理由としては、URLの書き換えが考えられます。web.configファイルの「rewrite」セクションを削除/コメントするだけです。
(Visual Studioで)デバッグモードでコンパイルしてみます。リリースモードの場合、URL書き換えエラーの多くは発生しません。