Webアプリケーションの問題(web.configエラー)IIS7.5およびASP.NET v2でのHTTP 500.19


146

これはチーム全体を狂わせています。IISまたはWebサーバーの単純な誤って構成された部分があるはずですが、IIS 7.5でASP.NET Webアプリケーションを実行しようとするたびに、次のエラーが発生します...

ここに完全なエラーがあります:

HTTP Error 500.19 - Internal Server Error

The requested page cannot be accessed because the related configuration  
data for the page is invalid.

`Detailed Error Information` 
Module              IIS Web Core
Notification        Unknown
Handler             Not yet determined
Error Code          0x8007000d
Config Error
Config File         \\?\E:\wwwroot\web.config
Requested URL       http://localhost:80/Default.aspx
Physical Path 
Logon Method        Not yet determined
Logon User          Not yet determined
Config Source
   -1: 
    0: 

マシンはWindows Server 2008 R2を実行していますVisual Studio 2008を使用してWebアプリケーションを開発しています。

Microsoftによると、コード8007000dは、web.configに構文エラーがあることを意味します-プロジェクトがローカルでビルドして正常に実行される場合を除きます。XMLメモ帳でweb.configを表示しても、構文エラーは発生しません。私はそれが私の側の何らかの悪い設定であるに違いないと思います...?

エラーに関する詳細情報がどこにあるかを誰かが知っていますか?EventViewerにも何も表示されていません:(

他に何が言及に役立つかわからない...

援助は大歓迎です。ありがとう!

アップデート!-下に配置されたWEB.CONFIG

上記の元の質問を投稿したので、エラーの原因となったweb.configの正確な行を追跡しました。

これが行です(<System.webServer>タグの間に表示されます)...

    <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    </httpHandlers>

注:I STILLのの行を削除すると<httpHandlers>、エラーが発生します。<httpHandlers>上記のエラーが発生しないようにするには、文字通り(およびその間の行を)削除する必要があります。

ただし、これを実行すると、新しい 500.19エラーが発生します。ありがたいことに、今回はIISが実際にweb.configのどのビットが問題を引き起こしているかを教えてくれます...

    <handlers>
        <remove name="WebServiceHandlerFactory-Integrated"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    </handlers>

これらの行を見ると、問題が同じ<system.webServer>タグ内でさらにタグに移行していることがわかり<handlers>ます。

新しいエラーもより明確になり、「validate」属性を認識しないことが明確に表示されます(上記の3行目を参照)。この属性を削除すると、同じ行に必要な "name"属性がないと不満が出ます。この属性を追加すると、ASP.NETエラーが発生します...

ファイルまたはアセンブリ 'System.web.Extensions、Version = 1.0.61025.0、Culture = neutral、PublicKeyToken = f2cb5667dc123a56'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

明らかに、これらの新しいエラーは<httpHandlers>、最初にタグを削除したことによって発生したと思います-アプリケーションで明らかに必要であるため、疑問が残ります:これらのタグは、なぜIISでエラーを引き起こすのでしょうか? ??

IISに何かをインストールする必要がありますか?

助けてくれてありがとう。

WEB.CONFIG

これが私たちのweb.Configの厄介な部分です...これが誰かが私たちの問題を見つけるのに役立つことを願っています!

<system.Web>

<!-- stuff cut out -->

    <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56" validate="false"/>
    </httpHandlers>
    <httpModules>
        <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    </httpModules>
</system.web>

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
        <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    </modules>
    <remove verb="*" path="*.asmx"/>
    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    <handlers>
        <remove name="WebServiceHandlerFactory-Integrated"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory,System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=f2cb5667dc123a56"/>
    </handlers>
</system.webServer>

内のすべてのコメントを削除しますweb.config。で始まり、<!-- で終わり-->ます。
Alex Bagnolini

ウート。<httpHandlers>と関係がある
Chuck Le Butt

これは統合モードで実行されていますか?その場合は、クラシックモードをお試しください。
Jeremy McGee、

@アレックス-すべてのコメントを削除しましたが、役に立ちませんでした。提案をありがとう。
チャックルバット

@ジョー私はweb.config全体を投稿するつもりはないと思います。おそらく賢明ではないでしょう...:-/
チャック・ル・バット

回答:


263

私はこれらの正確な症状があり、私の問題はピーターのものと似ていました。新しいサーバーに既存のプロジェクトをセットアップしていました。私のプロジェクトはIIS7 URL書き換えモジュールを参照しましたが、新しいサーバーにはまだインストールされていません。インストールすると問題が解決しました。

Microsoft Web Platform Installerを使用してインストールできます。それを実行し、製品を選択し、左側のメニューでサーバーを選択し、リストでURL書き換えを見つけてインストールします。

または、こちらからダウンロードできます。


2
>私はこれらの正確な症状があり、私の問題はピーターの症状に似ていました。新しいサーバーに既存のプロジェクトをセットアップしていました。私のプロジェクトはIIS7 URL書き換えモジュールを参照しましたが、新しいサーバーにはまだインストールされていません。インストールすると問題が解決しました。ありがとう、DJjeffJ。私のために修正しました。開発サーバー上のURL更新モジュールがインストールされていません。
jk。

1
うん...私も、.net 3.5を持っていたので、ajaxはすでに含まれていましたが、書き換えは含まれていません。
WildJoe、2011年


5
4年経ちましたが、これはまだ問題です。エラーには、問題の原因を特定するための絶対的な情報はありません。私も既存のソリューションを、まだモジュールがオンになっていない新しいサーバーに移動していましたが、たまたまこの答えに出くわしただけです。
ProNotion 2014

4
問題はServer 2016でも継続し、「URL書き換え」を示すインストールする機能/モジュールはありません。あなたはそれをインストールするために使用しなければなりません、そしてその後私のサイトは機能しました(または少なくともその問題を与えるのをやめました)。
Rob

41

新しいマシンで1日間これと戦った後、私は次のリンクに出くわしました。書き換えモジュールがありませんでした。これですべてが修正されました。

http://forums.iis.net/t/1176834.aspx

http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/


1
+1。TFSから<rewrite>取得したweb.configにはタグがありましたが、urlrewriteがインストールされていませんでした。私は<rewrite>ものをコメントアウトし、私のサイトはコンパイルされ、すぐにロードされました。
ピート

1
私がサイトでリライトを使用したことを思い出すのに1時間かかりました。私はマイクロソフトがより良いコンパイラエラーメッセージシステムを持っていることを望みます。web.configの正確な行が表示されれば、問題は数分で解決します。
dvdmn 2013

IIS ExpressのVisual StudioにUrl Rewriteをインストールするにはどうすればよいですか?
ディマ

40

ああ!私はこの問題を打ち負かした!神様、IISの経験が限られた私のような人にとっては獣でした。私は本当にそれを修正するために週末中費やすつもりだと思っていました。

これは、この邪悪な問題に遭遇した人のための解決策です。

最初に注意すること:これが解決策であることを期待している場合は、同じエラーコード(0x8007000d)と構成ソース(-1:0 :)があることを確認してください。そうでない場合、これあなたの解決策ではありません

次に注意すること:AJAXがweb.configに正しくインストールされていません!

このガイドに従って修正してください:http :
//www.asp.net/AJAX/documentation/live/ConfiguringASPNETAJAX.aspx

次に、このリンクから、本番サーバーにAJAX 1.0拡張機能をインストールします

http://www.asp.net/ajax/downloads/archive/
更新マイクロソフトは上記のページを削除したようです:(

それでおしまい!


1
ありがとう!AJAX Extensionsが問題でした。AJAXが3.5に組み込まれたため、このセクションをコメントアウトしました
jdiaz 09

1
MicrosoftがASP.NET AJAXを構成するための最初のリンクを解除したようです。
Rob Sobers

1
古いコンテンツのミラーが見つかりました。MSのドキュメンテーションが頻繁に消えてしまうのはうんざりです。
Chuck Le Butt

4
あなたの答えは、このエラーはAjaxにのみ当てはまることを示唆していますが、urlrewriteにも当てはまります。これは、エラーが、利用できないモジュールに依存する提案を参照している可能性があることを意味します。
Rainabba 2013年

@チャック、「私はロッキーのように感じる」とはどういう意味ですか?
Pacerier 2015

16

サーバー2016での同じ問題、IIS 10、500.19エラー。私はリダイレクトモジュールをインストールし、それが機能しました。これがデフォルトで含まれていなかった理由はわかりません。

https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads

明確にするために、IIS 7のweb.configは機能するか、機能するように設計されているように見えますが、このモジュールがないため、非常に奇妙で役に立たないエラーが発生します。グーグルすると、サイトが破損しているか、web.configが破損していると主張するMicrosoftページに移動します。どちらもそうではないようです。

その役に立たないページはこちらです:https : //support.microsoft.com/en-us/kb/942055


12

上記と同じ問題、同じエラーコードなどがありました。Windows8でローカルWebサイトを設定しています。多くの検索を行った後、URLの書き換えが欠落していることがわかりました。それをダウンロードした後、すべてが大丈夫でした。:)


たくさんの時間を節約してくれた男...いいね!
PhillyNJ 2013

同様に、このエラーメッセージはまったく役に立ちません。
ケン・キーナン

8

同じ症状を解決するために何時間も費やしたので、ただ答えを追加しました(ただし、別の問題です)。

考えられる原因は、64ビットアプリプールのx86 dllです。解決策は、アプリケーションプール設定で32ビットアプリを有効にすることです。


この回答は、Umbraco CMSのセットアップ中の500.19エラーにも有効です。
aron.lakatos 2016

4

私にとっては、iisにasp.netを再登録することでうまくいきました。うまくいけば、それは他の誰かを助けます。

aspnet_regiis.exe -i

4

ここや他の場所での回答に基づいて要約すると:

  1. アプリプールの.NETバージョンを確認します(例:2.0と4.0)。
  2. すべてのIIS参照モジュールがインストールされていることを確認してください。この場合、それはAJAX拡張機能でした(おそらく最近ではそうではありません)が、URL書き換えは一般的なものです。

4

明白な理由なしに500.19 errotを取得する別の方法は、ディレクトリが不足しているか、ディレクトリのアクセス権が壊れていることです。

この質問の場合、完全なIISバージョンについての質問だと思います。私はこれをこの行のために仮定します:

Config File         \\?\E:\wwwroot\web.config

IISインストーラーは通常、を作成しwwwrootます。これは、すべてのWebサイトのデフォルトのルートフォルダーであり、仮想ディレクトリのマウントポイントです。それは常に存在するので、問題ありません。通常、それについてはあまり気にしません。

web.configファイルは階層的であるため、そこにマスターweb.configファイルを置き、そこにいくつかのルート設定を含めることができ、すべてのサイトがそれを継承します。IISは、そのファイルが存在するかどうかを確認し、ロードしようとします。

ただし、最初の楽しい部分:

このディレクトリは、IISが適切にインストールされている場合に存在します。存在しない場合は、500クラスのエラーが発生します。ただし、ファイル/ディレクトリのアクセス許可、特に「高度な」アクセス許可で遊んでいる場合、IISサービスアカウントがこのディレクトリの内容をスキャン/読み取ることを誤って拒否する可能性があります。IISがそのwwwroot \ web.configが存在するかどうかを確認できない場合、または存在していてIISがそれを開いて読み取ることができない場合-bam-500クラスエラー。

ただし、完全なIISの場合はほとんどありません。完全なIISを使用する開発者/管理者は、通常、操作に消極的であるwwwrootため、通常は適切に構成されたままです。

ただし、IIS Expressでは

通常、IIS Expressは「機能するだけ」です。多くの場合、IIS Expressを使用する開発者は、内部的に実際のIISにどれだけ似ているかを知らないことがよくあります。

IIS Expressには独自のapplicationHost.configファイルがあり、VSがそれを作成して管理する(正確には、ある程度)という事実に簡単に遭遇する可能性があります。最初のようにクリックします。

その構成ファイルとは別に、VisualStudioはDocumentsフォルダーの下に空のディレクトリ構造も作成します。私が正しく覚えている場合、IIS Expressはこれらのフォルダーを、コードを含む仮想ディレクトリがマウントされているWebサイトのルートディレクトリと見なします。

その後、IISと同様に、IIS Expressが起動すると、これらのフォルダーが存在することを想定し、そこにルートweb.configファイルがあるかどうかを確認します。サイトのweb.configファイル。ほとんどの場合、これらのweb.configファイルは欠落しています-必要ないので問題ありません。**アプリケーションweb.config "があり、残りのコンテンツとともに仮想ディレクトリに配置されます。

次に、2番目の楽しい部分は、IIS Expressがその空のディレクトリを予期していることです。空でもかまいませんが、存在する必要があります。それらが存在しない場合-そのパスにある「web.config」ファイルにアクセスできないことを伝える500クラスのエラーが表示されます。

この問題に初めて遭遇したのは、ハードドライブをクリアしたときでした。「documents \ websites」フォルダがゴミでいっぱいであることに気づきました。私がもう取り組んでいない1年前のプロジェクトがすべて空で、1つのファイルではないので、すべて削除しました。1週間後-bam-現在作業中のサイトを実行/デバッグできません。エラーは500.19で、構成ファイルを読み取れません。

したがって、IIS Expressを使用していて、構成の読み取りに関する500クラスのエラーが表示される場合は、エラーメッセージを注意深く確認し、記載されているすべてのパスを読み取ってください。次のようなものが表示された場合:

c:\users\user\documents\visual studio 2013\projects\WebProject1\WebProject1.web\web.config
c:\users\zeshan.munir\documents\visual studio 2015\projects\WebProject1\WebProject1.web\web.config
c:\users\zeshan.munir\documents\visual studio 2017\projects\WebProject1\WebProject1.web\web.config
etc..

エラーが示す場所に正確に移動し、これらのフォルダーが存在することを確認し、IISワーカーアカウントがそれらをトラバースおよび読み取りできることを確認します。何か問題があることに気付いた場合は、それが原因である可能性があります。

ところで。VisualStudioのProjectProperties / Webには、[Create Virtual Directory]ボタンがあります。これは基本的にこれを行うので、最初に試すことができますが、IIRCはapplicationHost.configファイルの構成セクションをクリア/上書き/スワップすることもできます。そこでカスタム設定がある場合は、このボタンに注意してください。


3

私の場合、.NET Core Windows Hosting Bundleのインストールに問題がありました。

インストール後にIISをインストールして再起動し( "net stop was / y"と "net start w3svc")、エラーコード0x8007000dと構成ソース-1:0:の500.19エラーが発生しました。

上記のコマンドを使用して.NET Core Windows Hosting Bundleのインストールを修復し、IISを再起動することで問題を解決することができました。

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


1
これも私にとってはうまくいきました。.NETCore Windows Server Hostingバンドルのインストールに関するMSDNブログはこちらです:blogs.msdn.microsoft.com/rohithrajan/2018/03/13/… ダウンロードへの直接リンクはこちらです。 ms / dotnetcore-2-windowshosting
riverswb

3

この素敵な詳細なエラーは2019年にも存在します!あなたweb.configが有効でアクセス可能な場合は、依存関係の問題である可能性が高いことを付け加えておきます。

OPで言及されているように、それはAJAXモジュールであり、他の人がそうであるように、一般的にRewriteモジュールです。エラーコード0x8007000dすべての依存関係になる可能があるため、タグが参照しているモジュールとライブラリをweb.configで目を離さないでください。

私の場合、AspNetCoreバンドルが見つからず、インストールする必要があることに気づきませんでした!とても嬉しいこの投稿を見つけました!!


2

これは関連しているかどうかに関係なく....上記と同じエラーで始まり、グーグルを開始し、変更を加え、新しいエラーを取得し、無限ループしました。

そのエラーによって私が得た変更は、サーバーの管理セクションにあるIISマネージャーの機能委任を混乱させていました。どれを変更したか思い出せなくて申し訳ありませんが、グーグル操作が役立つ場合があります。

それで、最初のエラーを乗り越えて、まったく新しい他者の流れに入りました。(仮想ディレクトリで実行すると1つのエラーが発生し、アプリケーションに変換すると、etecなどの別のエラーが発生しました)。最終的にこの一連のエラーを解決したのは、IISマネージャー、アプリケーションプール、DefaultAppPool、32ビットアプリケーションを有効にする= Trueでした。

私はこのアプリを32ビットWindows XPボックスで起動しましたが、現在64ビットWindows 7ボックスで実行しています。

うまくいけば、これは他の誰かを助けるでしょう。


2

IIS 7.5がweb.configのタグを理解しませんVS 2010では、そのタグにも下線が引かれています。下線が引かれたタグをすべて見つけるために、設定ファイルを正確に確認してください。コメントに入れればエラーはなくなります。


2

web.configファイルの次の行をコメント化します。

<modules>
    <!--<add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>-->
</modules>

<handlers>
    <remove name="WebServiceHandlerFactory-ISAPI-2.0"/>
    <!--<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add name="ScriptResource" verb="GET" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>-->
</handlers>

これは機能します。


2

同じエラーが発生しました。.netフレームワークバージョン2.0のIISサイトがありましたが、私のアプリには4.0が必要でした。私はバージョンを変更し、それはうまくいきました。

誰かが同じ問題を抱えているかもしれない場合のリマインダーとして投稿する。


2

すべてのIIS機能が適切に有効になっていることを確認してください。

  • Windowsの機能を開きます(Windowsの機能をオンまたはオフにします)。
  • インターネットインフォメーションサービスまでスクロールします

  • World Wide Web plusボックスのドロップダウンを開きます

  • アプリケーション開発機能プラスボックスのドロップダウンを開きます
  • 後続のすべてのチェックボックスを手動でオンにして、[OK]をクリックします。

ここに画像の説明を入力してください


1
インプレースアップグレード方式でWindows 10を再インストールしたばかりで、それらのボックスの一部のチェックを外したか、再インストールでそれらのチェックを外しました。関連するエラーコード0x80070021が500.19ページに表示されました。
Andrew Morton

2

以下の設定が私の問題の原因でした:

    <rewrite>
      <rules>
        <clear />
        <rule name="Redirect to HTTPS" stopProcessing="true">
          <match url="(.*)" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^.*spvitals\.com$" />
            <add input="{HTTPS}" pattern="off" ignoreCase="true" />
          </conditions>
          <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
        </rule>
      </rules>
    </rewrite>

注:このセクションはAzureで正常に機能するため、ローカルテストのために削除しました。


1
IIS URL書き換えモジュールをインストールすると、書き換えルールをIISに保持できます。それはATのiis.net/downloads/microsoft/url-rewrite
トビー職人

1

Windows 7でも同じ問題が発生しました。

解決策は、基本設定>接続先>特定のユーザーに移動し、デフォルトの「パススルー」ではなく、ユーザーとしてログインすることでした。

これで問題が解決しました。


1

Windows 7

これを試して、

cmdを管理者として実行します。

すべてのiisをアンストールします。

start /w pkgmgr.exe /uu:IIS-WebServerRole;WAS-WindowsActivationService

iisを再インストールし、通常はそれが動作します

アラン


1

このエラーは、<customErrors>タグが属する場所では<system.webServer>なく内部にタグを配置することで発生しました<system.web><customErrors>タグの下に小さな波線がありましたが、すぐには気づきませんでした。


1

上の回答と同様に、IIS CORSモジュールがないため、この信じられないほど役に立たない例外が発生しました。エラーコード(0x8007000d)および構成ソース(-1:0 :)とまったく同じエラーでしたが、URL書き換えモジュールをインストールしても修正されませんでした。

最近、web.configを更新して、それを必要とする一部の開発者がCORSを有効にできるようにしましたが、すべての開発者がIIS CORSモジュールをインストールする必要があるとは予想していませんでした。残念ながら、必要なようです。

これを修正するには、ここからIIS CORSモジュールをインストールします


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