1

我们创建了自己的重定向 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。

感谢任何帮助。

奥利特

4

1 回答 1

3

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

请参阅Jon Galloway 的这个答案和这篇关于处理程序和模块的 MSDN 文章。

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

于 2012-04-17T15:15:37.587 回答