2012-04-17 39 views
1

我们建立了自己的重定向的HttpHandler接受所有请求(动词=“*”,路径=“*”):我们如何通过执行从HTTP处理程序

<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。

感谢任何帮助。

奥里特

回答

3

处理程序应该只决定如何处理文件扩展名(物理或逻辑的),不。我认为你的意思是创建一个模块。

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

编辑:另外,请查看ASP.NET/Mobile的第一个方法。它展示了如何在Web窗体和MVC中实现这一点。