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 的问题。我注意到的一件事是您正在使用位于 system.web 中的 httpHandlers 部分。但是,我认为对于集成模式,您需要使用 system.webServer 部分:

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

如果我错了,希望知道他们在说什么的人会纠正我。

于 2010-04-14T09:41:11.757 回答
1

Request Filtering我需要将 .axd 文件设置为允许扩展的部分中,我的托管公司Allow unlisted file name extensions关闭了该设置,这与我的开发环境不同。

于 2015-04-16T10:14:00.497 回答
1

我最近将一个客户端网站从旧的 IIS6 移动到 IIS7 安装。在调用 .axd 时,他们的应用程序也遇到了 404。他们的站点设置为 .net 2,权限正确,处理程序看起来都不错。最终将他们的应用程序池从“托管管道模式”集成更改为经典,这解决了他们的应用程序问题。

于 2016-02-16T14:32:58.960 回答
0

在尝试了很多选项后,他们没有成功。但是,这奏效了。在您的 Appstart 文件夹中,在 routeconfig.cs 中添加此代码 routes.IgnoreRoute("{resource}.axd/{*pathInfo}") ,如下所示。

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