【问题标题】:Why does Sitecore throw a NullReferenceException exception when I redirect to one of its pages?为什么当我重定向到其中一个页面时,Sitecore 会引发 NullReferenceException 异常?
【发布时间】:2011-01-22 00:39:58
【问题描述】:

我在 Windows 2008、IIS7 上运行 Sitecore 6.1,并尝试使用 URL 重写模块进行重定向。当我启用规则并点击触发它的 URL 时,我得到一个 YSOD。相同的规则在同一台机器上的非站点核心站点上完美运行。根据 Failed Request Trace,rewrite 模块做的很好,但是 Sitecore 会抛出一个异常,即使重定向指向另一个服务器。这可能是我配置错误的结果,但我就是不明白为什么它不起作用。 YSOD 的详细信息如下。

[NullReferenceException: Object reference not set to an instance of an object.]  
   Sitecore.Nexus.Web.HttpModule.(Object sender, EventArgs e) +273  
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68  
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75  

【问题讨论】:

  • 是否有确定的解决方案?没有登录模块让我很伤心。

标签: iis iis-7 url-rewriting sitecore sitecore6


【解决方案1】:

Sitecore 有自己的 URL 重定向引擎,因此这里可能会出现一些问题。可能您需要移动 HttpModule 以便它在链中更早执行。

【讨论】:

  • 故障跟踪明确显示了在 Sitecore 管道启动之前发生的重写。事情以错误的顺序发生仍然有意义吗?
  • 我想不会。但有趣的是,这个 Nexus 模块是 Sitecore 注册的第一个模块(我刚刚检查了我的 web.config)。您是否尝试过将其删除?我不确定它的作用。
  • 好的,Nexus 是 Sitecore 不可或缺的一部分……无法禁用它。问题:当您在浏览器中浏览目标 URL 时会发生什么?同样的错误?完整的网址是什么?它是否有 Sitecore 不会处理的扩展程序?
  • @Brian - 如果您使用“普通”浏览器浏览到 URL,页面加载正常。只有当爬虫试图访问重写的 URL 时,它才会抛出 302“对象已移动”错误。至少在我们的案例中是这样的。
  • 这是一个怎样的答案?我遇到了同样的问题,但不确定是什么解决了它或解决方案是什么?对我来说,一切正常,但在不相关的部署之后突然停止了。有什么想法吗?
【解决方案2】:

做的时候也会报同样的错误

Response.Redirect("~/SomeUrl.aspx")

在 C# 代码中,解决此问题的方法是使用重载:

Response.Redirect("~/SomeUrl.aspx", true)

这将立即结束响应。

重写模块显然不会立即结束请求,从而允许 Sitecore 解决这个问题。您可以通过创建一个模块来处理重定向或尝试扩展 URL 重写模块以立即结束响应来解决此问题。

【讨论】:

    【解决方案3】:

    【讨论】:

    • 这个“修复”的问题是,如果您使用新的无扩展名 URL 选项(删除 .ASPX 扩展名),则无法在经典模式下运行项目。它将提供 404 个页面。
    • @ianpoley - 有趣的是,在切换到经典之后,又回到集成,这已经被修复了
    【解决方案4】:

    【讨论】:

      【解决方案5】:

      我在 Sitecore v6.5 的 MultiSite 实例中遇到过这种情况,请在此处查看我的答案:Sitecore NullReferenceException on GetBrowserClassString

      【讨论】:

        猜你喜欢
        • 2014-07-01
        • 1970-01-01
        • 2017-07-08
        • 2015-09-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-31
        • 2011-11-03
        相关资源
        最近更新 更多