web-dev-qa-db-ja.com

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

これはチーム全体を狂わせています。 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 R2Visual Studio 2008を使用してWebアプリケーションを開発しています。

Microsoftによると、コード8007000dはweb.configに構文エラーがあることを意味します-プロジェクトがローカルでビルドおよび実行されることを除きます。 XML Notepadでweb.configを確認しても、構文エラーは表示されません。私はそれが私の側の何らかの悪い設定でなければならないと仮定しています...?

エラーに関する詳細情報をどこで見つけることができるか誰にもわかりますか? EventViewerには何も表示されません:(

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

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

PDATES!-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>

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

これを実行すると、new500.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行目を参照)。この属性を削除すると、同じ行に必要な「名前」属性がないと文句を言われます。この属性を追加すると、ASP.NET error ...が表示されます.

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

明らかに、これらの新しいエラーは、最初に<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>
136
Chuck Le Butt

あぁ!私はこの問題を克服しました!私の神様、それは私のような、IISの経験が限られた人にとっては獣でした。週末中ずっとそれを修正することに費やそうと本当に思った。

この邪悪な問題に遭遇したことがある人のための解決策がここにあります。

最初に注意すること:これがあなたの解決策であることを望んでいるなら、同じエラーコード(0x8007000d)とConfig Sourceがあることを確認してください(-1:0:)。そうでない場合、これはソリューションではありません

次の点に注意してください:AJAXがweb.configに正しくインストールされていません!

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

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

http://www.asp.net/ajax/downloads/archive/
UpdateMicrosoftは上記のページを削除したようです:(

それでおしまい!

40
Chuck Le Butt

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

Microsoft Web Platform Installerを使用してインストールできます。実行し、Productsを選択し、左側のメニューでServerを選択し、URL Rewriteリストに追加してインストールします。

または、ダウンロードすることができます こちら

250
JJMpls

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

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

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

40
kerrydewhirst

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

12
The Edge

Server 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
Rob

私は同じ症状を解決しようとして何時間も費やしたので、別の問題を追加しただけです。

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

8
Guillaume86

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

aspnet_regiis.exe -i
4
ctc

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

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

明確な理由なしに500.19のエラーを取得するもう1つの方法は、ディレクトリの欠落および/またはそれらに対する権限の破損です。

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

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

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

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

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

IISが正しくインストールされている場合、このディレクトリが存在します。存在しない場合は、500クラスのエラーが発生します。ただし、ファイル/ディレクトリのアクセス許可、特に「高度な」アクセス許可を使用すると、実際には誤ってdeny 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が起動すると、expectsこれらのフォルダーが存在し、そこにルートweb.configファイルがあるかどうかを確認します。 site web.configファイル。ほとんどの場合、これらのweb.configファイルは欠落しています-必要ないので大丈夫です-あなたの** application web.config "があり、それらは仮想ディレクトリ内の残りのコンテンツと共に配置されます。

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

この問題に最初に出会ったのは、ハードドライブをクリアしたときでした。ゴミだらけの「documents\websites」フォルダを見つけました。作業していない数年前のプロジェクトを認識しました。すべてが空で、単一のファイルではないため、すべて削除しました。 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には、[仮想ディレクトリの作成]ボタンがあります。基本的にこれを行うので、最初に試すことができますが、IIRCはapplicationHost.configファイルの構成セクションをクリア/上書き/スワップすることもできるため、カスタムセットアップがある場合はそのボタンに注意してください。

4
quetzalcoatl

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

私はそれをインストールし、インストール後にIISを使用して(「net stop was/y」および「net start w3svc」)再起動しましたが、エラーコード0x8007000dおよび構成ソース-1で500.19エラーが発生しました0 :.

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

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

3
demonicdaron

同じエラーが発生しました。 .NET Frameworkバージョン2.0のIISサイトがありましたが、アプリには4.0が必要でした。私はバージョンを変更し、それは働いた。

誰かが同じ問題を抱えている可能性がある場合のリマインダーとしての投稿。

2
Nenotlep

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
Amal Shashika

私のIIS 7.5はweb.configのタグを理解しませんVS 2010では、そのタグにも下線が引かれています。構成ファイルを正確にチェックして、下線付きのタグをすべて見つけてください。コメントに入れるとエラーは消えます。

2
Konstantin

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

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

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

2
Avinor

これは関係があるかもしれませんし、関係ないかもしれません...私は上記と同じエラーから始めて、グーグルを始め、変更を加え、新しいエラーを取得し、無限ループを起こしました。

そのエラーによって私を導いた変更は、サーバーの[管理]セクションの下のIIS Managerの機能の委任を台無しにしていました。どちらを変更したか覚えていないのが残念ですが、グーグルは役に立つかもしれません。

それは、私が最初のエラーを過ぎて、まったくまったく無意味な他のまったく新しいストリームになったのです。 (仮想ディレクトリの下で実行すると、1つのエラーが発生し、それをアプリケーションに変換すると、別のエラーが発生します(etecなど)。この一連のエラーを最終的に解決したのは、IIS manager、Application Pools、DefaultAppPool、Enable 32-Bit applications = True

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

だから、うまくいけば、これは他の誰かを助ける。

2
tbone

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

1
foldinglettuce

Windows 7

これを試して、

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

すべてのIISを展開します。

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

Iisを再インストールすると、正常に機能します

アラン

1
Alan10977

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

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

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

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

enter image description here

1
Versatile

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

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

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

1
BuzzCloudAU