1. ホーム
  2. asp.net

[解決済み] IIS7.5とASP.NET v2によるWebアプリケーションの問題(web.configエラー)HTTP 500.19

2022-04-29 11:12:28

質問

これはチーム全体を狂わせるものです。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 . Webアプリケーションの開発には ビジュアルスタジオ2008 .

Microsoft によると、8007000d というコードは web.config に構文エラーがあることを意味しています -- ただし、プロジェクトはローカルで正常にビルドされ実行されています。XMLメモ帳でweb.configを見ても、シンタックスエラーは出てきません。私の設定に問題があるのではと思うのですが...?

このエラーに関する詳細な情報はどこにあるか、どなたかご存知ですか?EventViewerにも何も表示されません :(

他に何か参考になることはないでしょうか・・・。

ご協力をお願いします。ありがとうございます。

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

注:もし私が行を削除すると の間に <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' or その依存物の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>

解決方法は?

嗚呼、この問題を克服したぞ。私のような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/

更新情報 : マイクロソフトは上記のページを削除したようです :(

それだ!