4
<httpHandlers>
  <add path="ajaxpro/*.ashx" verb="POST,GET" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2" />
  <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" />
  <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" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpHandlers>

統合モードの iis7.5 に問題があります。上記のクラシック モード ハンドラーで使用すると正常に動作しますが、統合パイプラインに切り替えると、処理する必要があるすべての要求で 404 エラーが返されます。なんで?

4

4 に答える 4

10

私は可能な限り IIS の専門家とはかけ離れているため、ここから何マイルも離れている可能性がありますが、私も統合モードの IIS7 で問題を抱えているため、あなたの質問に出くわしました。私が気づいたことの 1 つは、system.web にある httpHandlers セクションを使用していることです。ただし、統合モードでは、system.webServer セクションを使用する必要があると思います。

<system.webServer>
   <handlers>
      <add... >
   </handlers>
</system.webServer>

私が間違っていたら、彼らが話していることを知っている人が私を訂正してくれることを願っています.

于 2010-04-14T09:41:11.757 に答える
1

最近、クライアント Web サイトを古い IIS6 インストールから IIS7 インストールに移動しました。.axd も呼び出すと、アプリケーションで 404 が発生していました。彼らのサイトは .net 2 に設定され、パーミッションは正しく、ハンドラーはすべて適切に見えました。アプリケーションプールを「マネージドパイプラインモード」統合からクラシックに変更することになり、これによりアプリケーションの問題が解決されました。

于 2016-02-16T14:32:58.960 に答える
0

多くのオプションを試した後、うまくいきませんでした。しかし、しかし、これはうまくいきました。以下に示すように、Appstart フォルダーで、このコード routes.IgnoreRoute("{resource}.axd/{*pathInfo}") を routeconfig.cs に追加します。

public static void RegisterRoutes(RouteCollection routes) {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
}
于 2017-10-24T07:19:33.860 に答える