私は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 を避けることができます。カスタムエラーをしばらくの間だけ閉じて、詳細なエラーページを表示するだけです。
参照:Windowsカスタムエラーメッセージを有効にするGo Daddy's 記事を助けます。
詳細なエラーメッセージを有効にする方法(IISから)。
私はこの問題について私の髪の毛を引き抜いていました。次のエントリがルートのweb.config
ファイルにあることを確認してください。
<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
</configuration>
既存の XML 要素にこれを追加する必要があることを忘れないでください。ファイルの末尾に追加するだけではいけません。要素のコピーを複数持つことはできないからです。
Godaddy.ocm共有ホスティングにASP.NET MVC 3.0アプリケーションをデプロイすると、私はついにこの "500 Internal server"エラーを解決しました。
どういうわけか、参照されているDLLファイルのバージョンとファイルweb.config
に記載されているバージョンに矛盾がありました。
私はさまざまなフォーラムで言及されているすべてのオプションを試してみました。誰もが同じ種類の修正を提案しましたが、何の助けにもなりませんでしたが、どういうわけか私のシナリオではうまくいきませんでした。 2日間私の頭を叩いた後ようやく。私はすべてのDLLファイル参照を削除し、プロジェクトからweb.cofig(ローカルコピーを作成)を削除して、アプリケーションにエラーをスローさせてからDLLファイルを1つずつ追加することにしました。 local = trueにコピーします。
すべてのDLLファイルを追加した後、新しいASP.NET MVCアプリケーションを作成し、新しいアプリケーションのweb.configを実際のアプリケーションにコピーしました。そのため、実際のアプリケーションには新しいweb.configが追加され、次に、保存したweb.configのローカルコピーからconnectionstringとその他の参照をコピーしました。
アプリケーションをコンパイルしてローカルフォルダーに公開し、公開フォルダーをgoDaddyにFTP送信しました。
それはうまくいき、ついに私の問題は解決しました。
私にとっては、web.configの次のコードが原因でした。私がそれを削除したとき、ウェブサイトはうまくいきました。
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
</staticContent>
私の場合は、web.config
ファイルに間違いを入れました。アプリケーションキーはどういうわけか<appSettings>タグの下に置かれました。しかし、なぜそれが構成エラーを表示しないのだろうか。エラー500は、問題を調査するには一般的すぎます。
私の最初の試みは、HTMLのみを提供する非常に単純なサイトを公開してから実行しようとしたところです。
問題:Visual Studioでサイトを 。NET 3.5に設定しました(Webサイトプロジェクトを右クリック - >プロパティページ - >ビルド)。 AzureのWebサイトは.NET 4.0として構成されています。おっとっと! Azureで3.5に変更しましたが、うまくいきました。
他の提案に加えて、existingResponse
ノードのhttpErrors
属性をAuto
からReplace
に変更するか、そのプロパティーを完全に削除するようにしてください。
<httpErrors existingResponse="Replace" />
^^^^^^^ not going to work with this here
また、物理ホームディレクトリに対するアクセス許可が不十分な場合(つまり、IIS_IUSRSにアクセス権がない場合)、IISはイベントログのヒントなしでステータスコード500を報告します。
私はあなたのサーバーのファイルとフォルダーに対する許可も重要であることに気づきました。私は自分のファイルをLinuxオペレーティングシステムからアップロードしましたが、通常、パーミッションは読み書き用に制限されています。そのため、アップロードしても、パーミッションはローカルマシンと同じです。
私は同じエラーがあったと私はちょうど私がアップロードしたフォルダのアクセス許可を変更し、エラーが消えていました。
誰かに役立つことを願っています。
おそらくあなたのweb.configファイルが間違っているかいくつかのタグがありません。 。NET の正しい設定タグを使って問題を解決しました。
<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>
サーバーエラー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>
それは私の問題を解決しました。
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>
IIS 8の場合エラーの内容を表示するためにcustomErrors = Offを変更する以外に、追加の手順があります。
<system.web>
<customErrors mode="Off" />
</system.web>
<system.webServer>
<httpErrors existingResponse="PassThrough" errorMode="Detailed">
</system.webServer>
Raulはこのリンクで質問に回答しました RaulによるIIS 8カスタムエラーの無効化
アカウントでIIS 7.が使用されていることを確認してください。詳細については、WindowsホスティングアカウントのIIS設定のカスタマイズを参照してください。 Windowsでのパイプラインモードの変更IIS 7ホスティングアカウントの指示に従ってください。統合パイプラインモードを選択します。 [プロジェクト参照]セクションで、次のアセンブリの[ローカルにコピー]を[True]に設定します。
System.Web.Abstractions
System.Web.Helpers
System.Web.Routing
System.Web.Mvc
System.Web.WebPages
次のアセンブリをプロジェクトに追加してから、Copy LocalをTrueに設定します。
Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
Publish your application.
この可能性をお持ちの方(VPSホスティングではなくWebホスティング):
リモートデスクトップ経由でホスティングサーバーに接続します。リモートデスクトップからWebブラウザを開くと、エラーの詳細な説明が表示されます。
Web.configを修正したり、詳細を他の人に公開する必要はありません。
web.config
ファイルを変更する前に、使用している.NET Framework
のバージョンがGoDaddy
の設定(Plesk panel
のASP.Netの設定)とまったく同じ(つまり4.5!= 4.5.2)であることを確認します。これでweb.configファイルは自動的に正しいフレームワークに変更されます。
今のところ(16年1月)、GoDaddy
はASP.Net 3.5
および4.5.2
と連携することにも注意してください。 Visual Studioで4.5.2
を使用するには、2012
以降である必要があります。2015年でない場合は、.NET Framework 4.5.2開発者パッケージをダウンロードしてインストールする必要があります。
それでも機能しない場合は、そうです。次のステップは詳細なエラー報告を有効にしてデバッグできるようにすることです。
カスタム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の内部サーバーエラーはいくつかの理由で発生する可能性があります。 1つ目の理由は、web.configファイルが正しく作成されていないことです。これは、web.configファイル内のタグを見逃したことを意味します。次に、このエラーは何らかのコードの問題が原因である可能性があります。 Webアプリケーションのどのコンポーネントがこのエラーを引き起こしているのかを確認するには、web.configファイルのApplication設定を確認します。ダイアグラムを使用した500内部サーバーエラーの解決とトレースの詳細は、以下のとおりです。
IIS 8.5を使用している場合は、ApplicationPool ID設定をApplicationPoolIdからNetworkServiceに変更する必要があるかもしれません。
問題のアプリケーションプールを右クリックし、[詳細設定]をクリックして、IDまでスクロールします - おそらくApplicationPoolIdentityに設定されます。ボタン(..)をクリックし、代わりにドロップダウンリストからNetworkServiceを選択します。
また、それが.NET 2.0アプリケーションの場合は、App Poolの4.0フレームワークを参照していないことも確認してください。
時々、理由はあなたの.dllアセンブリの一つがサーバーに正しく登録されていないことであるかもしれません。
たとえば、サーバーにOfficeスイートがインストールされていないため、サーバーの展開時に500エラーが発生するため、OfficeがインストールされているローカルコンピューターでC#Excel Webアプリケーションを正常に実行できます。