AjaxToolkit IIS7 Asp.Net 4.0:Sys が定義されていません。ハンドラーマッピングの問題?

StackOverflow https://stackoverflow.com/questions/3822733

質問

asp.net 3.5 アプリを asp.net 4.0 に移動し、Windows 2003 (iis6) から Windows 2008 r2 (iis7.5) に移動しました。そして今、私はこれを持っています sys is undefined エラー。

統合アプリケーションプールでアプリを実行しています。私のajaxtoolkit 3.0.20820.0 dllを除いてすべてが動作します

今、いくつかのブログ投稿を読みましたが、そのほとんどは asp.net 2.0 の web.config ファイルについて説明しており、最小化された asp.net 4.0 構成ファイルについては説明していません。

現在の構成ファイルの一部を次に示します。

<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
    <add name="AjaxToolkit" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add name="ChartImg" verb="*" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"  />
</handlers>

そして別の部分:

<httpHandlers>
    <remove verb="*" path="*.asmx"/>
    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    <add verb="GET" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler" validate="false"/>
    <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
</httpHandlers>

asp.net 4.0 と ajaxtoolkit http ハンドラーの問題についてはあまり情報がありません。そのため、誰かの達人 @ stackoverflow が私を助けてくれることを願っています:)

編集:

この愚かなsys未定義のものがあるので、私のglobal.asaxはこれをon_Errorとします:

Error Message: This is an invalid script resource request.
Stack Trace:
at System.Web.Handlers.ScriptResourceHandler.ProcessRequest(HttpContext context) 
at System.Web.Handlers.ScriptResourceHandler.System.Web.IHttpHandler.ProcessRequest(HttpContext context) 
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

それは scriptresource.axd ファイルにあります :S

編集2: 奇妙なのは、私のローカルの web.config には web.config にハンドラー要素が含まれておらず、開発 Web サーバーのカジノで実行されていることです。

編集3: 人々はエイドリアンがここで解決策を持っていると言っています:http://budigelli.wordpress.com/2007/05/01/error-sys-is-unknown-error/しかし、IIS7では動作させることができません

編集4: IIS7 にはワイルドカード マッピングがあるとどこかで読みました。 Handler mapping.axd マッピングの上のソート解除されたリストに拡張子なしのワイルドカード マッピングがあることがわかりました。でも今はまだ Ajaxtoolkit をサポートするために IIS7 でマッピングを構成する方法がわかりません。

役に立ちましたか?

解決 2

OK、解決しました:こんなコメントを見つけました カッシアーノ この URL で:http://madskristensen.net/post/Optimize-WebResourceaxd-and-ScriptResourceaxd.aspx

そして、IIS7 に URL 書き換え拡張機能があり、すべての末尾にスラッシュが追加されていることに気づきました。(ルールは書き換えコンポーネントのウィザードによって生成されました)

これが私が使用し、ajaxtoolkitを機能させた現在のweb.configパーツです。

<httpHandlers>
    <remove verb="*" path="*.asmx" />
    <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
    <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
</httpHandlers>
<httpModules>
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</httpModules>

そしてこの部分:

<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules>
        <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </modules>
    <handlers>
        <remove name="WebServiceHandlerFactory-Integrated" />
        <add name="test jp" path="*.axd" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
        <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
        <add name="ChartImg" verb="*" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </handlers>

ルール番号 10 :AjaxToolkit IIS7 Asp.Net 4.0:Sys が定義されていません。ハンドラーマッピングの問題?

他のヒント

IIS 7 および IIS 7.5 上の asp.net 4.0 の場合は、これを web.config に追加します。

<system.webServer>
            <handlers>
                <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
            </handlers>
</system.webServer>

アップデート:バージョンを ASP.NET 4.0 の正しいバージョンに変更しました

以前は、ASP.NET AjaxToolkit と、次のような web.config が付属するテンプレート、デモ、またはサンプル ファイルを使用していました。

      <remove name="ScriptHandlerFactory"/>
      <remove name="ScriptHandlerFactoryAppServices"/>
      <remove name="ScriptResource"/>
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top