UrlRewriting.Net 模块 + IIS7 等于 Page.User == null?

2023-11-22

我已经使用 UrlRewriting.Net 模块几年了,在 Windows XP 和 Windows 2003 中没有任何问题。我最近刚刚将我的家用 PC 升级到 Windows 7 并开始开发一个新网站。

计划是使用 .html 扩展名,并使用 UrlRewriting.Net 模块将其重写为 .aspx 扩展名。一切在 VWD 2008 中完美运行,但是当我尝试通过 IIS7 运行它时,情况就不同了。

当我尝试通过 .html 重写访问页面时,我无法再访问 Page.User;它不断返回 null。如果我使用 .aspx 扩展名访问该页面,则 Page.User 会正确填充。我还应该提到,我的母版页中有一个 LoginView 控制器,它具有相同的症状:通过 .html 扩展名访问时,它显示 AnonyousTemplate;使用 .aspx 扩展名时,它可以正确显示 LoggedInTemplate。我猜这两者是相关的。

[注意:我也尝试过无扩展名 URL,它们也出现了同样的问题]

我让它工作的唯一方法是将应用程序池切换到 Classic,然后需要我为 .html 扩展名添加 ASP.Net ddl 处理程序 [否则它由 StaticFileHandler 处理并显示为 404错误]。但是,我希望我的 Web 应用程序能够为人们正常运行,而不必摆弄 IIS。

所以我留下了几个问题:

  • 有谁知道为什么 Page.User 对于 .html => .aspx 重写页面总是等于 null?
  • 为什么它可以在 VWD 2008 中运行,但不能在 IIS7 中运行?
  • IIS6 => IIS7 的哪些变化可能导致此问题?
  • 关于解决方法还有其他想法吗?

[注意:我刚刚尝试了 .aspx => .aspx 重写,但没有出现问题。这不是我真正想要的,但我想我应该提一下。]


刚刚在 UrlRewriting.Net 模块上取得了突破。这使得它在 IIS7 中以集成模式工作:

<modules runAllManagedModulesForAllRequests="true">

弄清楚后,我搜索了“runAllManagedModulesForAllRequests”,弹出的第一件事是斯科特·格思里的博客它实际上讨论了将其用于此目的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UrlRewriting.Net 模块 + IIS7 等于 Page.User == null? 的相关文章

随机推荐