gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 16:56:43 24 4
gpt4 key购买 nike

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

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

当我尝试通过 .html 重写访问页面时,我无法再访问 Page.User;它一直返回null。如果我使用它的 .aspx 扩展名点击该页面,则 Page.User 已正确填充。我还应该提到,我的母版页中有一个 LoginView Controller ,它也有同样的症状:当通过 .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”上进行了搜索,弹出的第一件事是Scott Guthrie's blog它实际上谈到了为此目的使用它。

    关于asp.net - UrlRewriting.Net 模块 + IIS7 等于 Page.User == null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2025398/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com