Webアプリケーションの問題(web.configエラー)IIS7.5およびASP.NET v2でのHTTP 500.19
-
05-07-2019 - |
質問
これはチーム全体を狂わせています。 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 Notepadでweb.configを確認しても、構文エラーは表示されません。私はそれが私の側の何らかの悪い設定であるに違いないと思っています...?
エラーに関する詳細情報の入手先を誰か知っていますか? EventViewerには何も表示されません:(
言及するのに他に何が役立つかわからない...
支援をお願いします。ありがとう!
更新! -以下にWEB.CONFIGを投稿しました
OK、上記の元の質問を投稿したので、エラーの原因となった 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>
それでもエラーが発生します。上記のエラーの発生を止めるには、文字通り<system.webServer>
(およびその間の行)を削除する必要があります。
これを完了すると、500.19の new エラーが発生します。ありがたいことに、今回は実際に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>
これらの行を見ると、同じ<handlers>
タグ内で<=>タグに問題がさらに移行していることが明らかです。
新しいエラーはより明示的であり、属性<!> quot; validate <!> quot;を認識しないことを明確に訴えます。 (上の3行目に見られるように)。この属性を削除すると、同じ行に必要な<!> quot; name <!> quot;がないと文句を言われます。属性。この属性を追加すると、 ASP.NET エラーが発生します...
ファイルまたはアセンブリをロードできませんでした 'System.web.Extensions、 バージョン= 1.0.61025.0、Culture = neutral、 PublicKeyToken = f2cb5667dc123a56 'または その依存関係の1つ。システム 指定されたファイルが見つかりません。
明らかに、これらの新しいエラーは、最初に <=> タグを削除したことによって生じたものだと思います-アプリケーションで明らかに必要であるため、疑問が残ります:なぜでしょうか?これらのタグは、IISで最初にエラーを引き起こしますか?
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>
解決 3
あぁ!私はこの問題を克服しました!私のように、それは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/
更新:マイクロソフトは上記のページを削除したようです:(
それだけです!
他のヒント
これらの正確な症状があり、私の問題はピーターの問題に似ていました。新しいサーバーに既存のプロジェクトを設定していました。私のプロジェクトはIIS7 URL Rewritingモジュールを参照しましたが、新しいサーバーにはまだインストールされていませんでした。インストールすると問題が解決しました。
Microsoft Web Platform Installer を使用してインストールできます。実行し、製品を選択し、左側のメニューでサーバーを選択し、リストで URLリライトを見つけてインストールします。
またはこちらからダウンロードできます。
新しいマシンで1日間これと戦った後、次のリンクに出会いました。書き換えモジュールがありませんでした。これですべてが修正されました。
http://forums.iis.net/t/1176834.aspx
http://learn.iis.net /page.aspx/460/using-the-url-rewrite-module/
上記と同じ問題、同じエラーコードなどがありました。Windows8でローカルWebサイトをセットアップしました。多くの検索を行った結果、URL書き換えが欠落していることがわかりました。それをダウンロードした後、すべてが大丈夫だった。 :)
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
同じ症状を解決するために何時間も費やしたので、ただ別の問題を追加しただけです(ただし、別の問題):
考えられる原因は、64ビットアプリプールのx86 dllです。解決策は、アプリケーションプール設定で32ビットアプリを有効にすることです。
私にとっては、asp.netをiisに再登録することでうまくいきました。うまくいけば、それは他の誰かを助ける。
aspnet_regiis.exe -i
ここと他の場所での回答に基づいて要約するには:
- アプリプールの.NETバージョンを確認します(例:2.0と4.0)
- すべてのIIS参照モジュールがインストールされていることを確認します。この場合、それはAJAX拡張でした(おそらく最近ではそうではありません)が、 URL Rewrite は一般的なものです。
明確な理由なしに500.19のエラーを取得する別の方法は、ディレクトリの欠落および/またはそれらに対するアクセス権の破損です。
この質問の場合、質問は完全なIISバージョンについて質問していると思います。私はこの行のためにこれを仮定しています:
Config File \\?\E:\wwwroot\web.config
IISインストーラーは通常wwwroot
を作成します。これはすべてのWebサイトのデフォルトルートフォルダーであり、仮想ディレクトリのマウントポイントです。それは常に存在するので、問題はありません。通常はあまり気にしません。
web.configファイルは階層的であるため、そこにマスターweb.configファイルを配置し、そこにいくつかのルート設定を持たせることができ、すべてのサイトがそれを継承します。 IISは、そのファイルが存在するかどうかを確認し、ロードしようとします。
ただし、最初の楽しい部分:
IISが適切にインストールされている場合、このディレクトリは存在します。存在しない場合は、500クラスのエラーが発生します。ただし、ファイル/ディレクトリのアクセス許可、特に「高度な」アクセス許可を使用すると、IISサービスアカウントがこのディレクトリのコンテンツをスキャン/読み取りすることを誤って拒否する可能性があります。 IISがそのwwwroot \ web.configが存在するかどうかを確認できない場合、または存在し、IISが<!> amp; readを開けない場合-bam-500クラスエラー。
ただし、完全なIISの場合はほとんどありません。完全なIISで作業する開発者/管理者は、通常Documents
で遊ぶことに消極的であるため、通常は適切に構成されたままです。
ただし、IIS Expressでは..
通常、IIS Express <!> quot; just works <!> quot;。多くの場合、IIS Expressを使用する開発者は、内部で実際のIISにどれだけ似ているかを知らないことがよくあります。
IIS Expressには独自のapplicationHost.configファイルがあり、VSがそれを(ある程度、正しく)作成および管理しているという事実と、それがそれほど単純ではないことを告げる目を楽しませてくれます。最初のようにポイントアンドクリックします。
その構成ファイルとは別に、VisualStudioは<=>フォルダーの下に空のディレクトリ構造も作成します。記憶が正しければ、IIS Expressはこれらのフォルダーをウェブサイトのルートディレクトリとみなし、その上にコードを含む仮想ディレクトリがマウントされます。
後で、IISと同様に、IIS Expressが起動すると、これらのフォルダーが存在することを期待します、そこにルートweb.configファイルがあるかどうかを確認します。 site web.config ファイル。ほとんどの場合、これらのweb.configファイルは欠落しています-必要ないので大丈夫です-** application web.config <!> quot;があり、それらは残りのコンテンツと共に仮想ディレクトリに配置されます。
今、2番目の楽しい部分は、IIS Expressが空のディレクトリを期待することです。空にすることもできますが、存在する必要があります。それらが存在しない場合-<!> quot; web.config <!> quot;を伝える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には、<!> quot; Create Virtual Directory <!> quot;というボタンがあります。これは本質的にまさにこれを行うので、最初に試すことができますが、IIRCはapplicationHoの設定セクションをクリア/上書き/スワップすることもできますst.configファイルなので、カスタムセットアップがある場合はそのボタンに注意してください。
私の場合、.NET Core Windows Hosting Bundleのインストールに問題がありました。
インストールした後、インストール後に(<!> quot; net stop was / y <!> quot;および<!> quot; net start w3svc <!> quot;)を使用してIISを再起動しましたが、エラーコード0x8007000dと構成ソース-1の500.19エラー:0:。
.NET Core Windows Hosting Bundleのインストールを修復し、上記のコマンドを使用してIISを再起動することで、問題を解決できました。
これが誰かを助けることを願っています!
これは関連する場合と関連しない場合があります。...上記と同じエラーで開始し、グーグル検索、変更、新しいエラーの取得、無限ループを開始しました。
そのエラーによって私にもたらされた変更は、サーバーの[管理]セクションの下にあるIISマネージャーの機能委任を混乱させていました。どちらを変更したか覚えていないのが残念ですが、グーグルは役に立つかもしれません。
それは、私が最初のエラーを過ぎて、まったくまったく無意味な他のまったく新しいストリームになったのです。 (仮想ディレクトリの下で実行すると、1つのエラーが発生し、それをアプリケーションに変換すると、別のエラーが発生します(etecなど)。この一連のエラーを最終的に解決したのは次のとおりです。 IISマネージャー、アプリケーションプール、DefaultAppPool、32ビットアプリケーションの有効化= True
このアプリは32ビットのWindows XPボックスで起動していましたが、現在は64ビットのWindows 7ボックスで実行しています。
これが他の人の助けになることを願っています。
私のIIS 7.5はweb.configのタグを理解しません VS 2010では、そのタグにも下線が引かれています。構成ファイルを正確にチェックして、下線付きのタグをすべて見つけてください。 コメントに入れるとエラーは消えます。
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>
これは機能します。
同じエラーが発生しました。 .NET Frameworkバージョン2.0のIISサイトがありましたが、アプリには4.0が必要でした。バージョンを変更し、機能しました。
誰かが同じ問題を抱えている可能性がある場合のリマインダーとして投稿する。
この素敵な詳細なエラーは、2019年にも存在しています!
web.config
が有効でアクセス可能な場合、依存関係の問題である可能性が高いことを付け加えます。
OPで言及されているように、それはAJAX
モジュールであり、他の人が一般的に言っているRewrite
モジュールでした。
エラーコード 0x8007000d は任意の依存関係である可能性があるため、web.configでタグが参照しているモジュールとライブラリを確認してください。
私の場合、AspNetCore
バンドルが見つからず、インストールする必要があることに気付きませんでした!とてもうれしいこの投稿を見つけました!!
Windows 7でも同じ問題が発生しました。
解決策は、基本設定に移動することでした<!> gt; <!> gt;として接続します。特定のユーザー-デフォルトの「パススルー」の代わりにユーザーとしてログインします
これにより問題が修正されました。
Windows 7
これを試してください
cmdを管理者として実行します。
すべてのiisをアンインストールします。
start /w pkgmgr.exe /uu:IIS-WebServerRole;WAS-WindowsActivationService
iisを再インストールすると、通常は動作します
アラン
<customErrors>
タグを<system.webServer>
の代わりに<system.web>
の内側に置くと、このエラーが発生しました。 <=>タグの下に小さな波線がありましたが、すぐには気付きませんでした。