ASP.NET默认静态处理程序,而不是我配置的处理程序

时间:2014-04-13 04:45:54

标签: asp.net web-config

我的网络配置包含以下内容:

<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这样的网址 失败,因为静态文件处理程序无法找到它。我需要每个网址的路径都以&#34; myproxy.ashx&#34;通过处理程序。我没有指定&#34; runAllManagedModulesForAllReaquests&#34;正常吗?这是使用经典管道和.Net 2.0的应用程序池中的Windows 2008 Server上的IIS。任何帮助非常感谢

1 个答案:

答案 0 :(得分:0)

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

我不知道web.config指定处理程序在开发与IIS中的实现方式有何不同。因此,任何试图获得看起来像静态文件(如http://www.yoursite.com/yourapp/customhandler.ashx/folder/file.ext)的标准浏览URL(无查询字符串)的人都会为Cassini服务器调用默认的静态处理程序。但是,如果你有httphandler规则,其路径指定了以&#34开头的url的处理程序类; customhandler.ashx&#34; (在此示例中)IIS应该正确地为您调用此处理程序。您可能需要runAllManagedModulesForAllRequests =&#34; true&#34;也是模块设置中的属性。

希望有人觉得这很有用。

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

相关问题