我们如何从HTTP处理程序传递执行

时间:2012-04-17 15:10:10

标签: c# asp.net .net iis httphandler

我们创建了自己的重定向httpHandler,它接受所有请求(verb =“*”,path =“*”):

  <system.webServer>        
         <handlers>
            <remove name="Redirect" />
        <add name="staticFileHandler" path="*.html" type="System.Web.StaticFileHandler" verb="GET,HEAD"  />
        <add name="Redirect" path="*" verb="*" type="RedirectModule.RedirectHandler, 
RedirectModule, Version=1.0.0.0, Culture= neutral, publicKeyToken=77c8b6b494e19eeb" resourceType="Unspecified" preCondition="integratedMode" />         
        </handlers>
    </system.webServer>

在http处理程序中,我们有代码检查URL,如果浏览器是移动的,则重定向。在这种情况下,如果浏览器不是移动设备或我们已经重定向,我们希望继续执行静态文件并显示其内容。

我们遇到的问题是因为我们使用的http处理程序接受所有请求,StaticFileHandler不处理HTML文件,我们总是得到一个白屏。

我们如何通过代码或web.config将执行从httphandler传递给staticFileHandler。

感谢任何帮助。

奥里特

1 个答案:

答案 0 :(得分:3)

处理程序应该只决定如何处理文件扩展名(物理或逻辑),而 时。我认为你打算创建一个模块。

请参阅Jon Galloway的this回答和this MSDN关于处理程序和模块的文章。

编辑:另外,请查看ASP.NET/Mobile的第一个操作方法。它展示了如何在Web窗体和MVC中完成此任务。