【问题标题】:ASP.NET default static handler called instead of my configured handler调用 ASP.NET 默认静态处理程序而不是我配置的处理程序
【发布时间】:2014-04-13 04:45:53
【问题描述】:

我的网络配置如下:

<system.webServer>
  <httpHandlers>
     <add verb="*" path="myproxy.ashx/*" type="PSAMap.MyProxy"/>
...
  </httpHhandlers>
  <validation validateIntegratedModeConfiguration="false"/>
  <modules runAllManagedModulesForAllRequests="true"></modules>
  <modules>
    <remove name="ScriptModule"/>
    <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  </modules>
...
</system.webServer>

但是像http://www.mysite.com/myAppName/myproxy.ashx/test/picture.jpg这样的网址 失败,因为静态文件处理程序找不到它。我需要路径以“myproxy.ashx”开头的每个 url 来通过处理程序。我没有正确指定“runAllManagedModulesForAllReaquests”吗?这是使用经典管道和 .Net 2.0 的应用程序池中 Windows 2008 Server 上的 IIS。非常感谢任何帮助

【问题讨论】:

    标签: asp.net web-config


    【解决方案1】:

    显然我遗漏了一个重要的细节——到目前为止,我只是想让它在我的开发环境中使用 Visual Studio 附带的 Cassini Web 服务器来工作...... 当我更改在 IIS 下运行的应用程序的 web.config 时 - 它工作正常!

    我不知道 web.config 指定的处理程序如何在开发与 IIS 中实现的差异。因此,任何试图获得看起来像静态文件(如http://www.yoursite.com/yourapp/customhandler.ashx/folder/file.ext)的标准外观 URL(无查询字符串)的人,Cassini 服务器总是会为这些文件调用默认的静态处理程序。但是,如果您的 httphandler 规则的路径为以“customhandler.ashx”开头的 url 指定处理程序类(在此示例中),IIS 应该为您正确调用此处理程序。您可能还需要模块设置中的 runAllManagedModulesForAllRequests="true" 属性。

    希望有人觉得这很有用。

    这是向我指出这一点的问题/答案:VS2010 development web server does not use integrated-mode HTTP handlers/modules

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-16
      • 2012-04-13
      • 2011-06-14
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多