2

当我在 Sitecore 7 中的页面上进行验证时,验证会引发异常:

The Page represented by the item 'home/about-us' failed to render properly. The error was     :
The remote server returned an error : (500) Internal Server Error

我没想到页面会呈现为有效的 XHTML,但我也没想到验证会出现异常。

有谁知道,为什么会抛出这个异常?

谢谢

4

4 回答 4

2

我最近遇到了这个问题,发现并不是页面标记无效,而是 Sitecore 验证器无法很好地处理错误,无法为最终用户提供有用的反馈。

XHTML 验证器的工作原理(开箱即用)

  1. 建立当前项目的友好 URL(使用额外的参数来处理语言、设备等)。
  2. 使用组合的 URL 创建一个 Web 请求并检索此页面(这很可能是错误的来源)。
  3. 下载响应并将其发送到 W3C Validator(但是这里有更多逻辑,这可能不是 OP 问题的原因)。
  4. 将验证信息返回给用户。

那么它为什么会破裂呢?

如果上面的 Web 请求失败,验证器也会失败,但是,它不会真正给您详细的原因(当您确实需要内部异常消息时,您会收到异常消息)。它也无法将任何内容记录到 Sitecore 日志中。

如何修复 XHTML 验证器问题

您的服务器可能未正确配置为允许对其自身进行 Web 请求。以下是一些可能对您有所帮助的快速想法。

  1. 如果您正在使用它们,请检查您是否拥有有效的 SSL 证书(自签名不起作用)。
  2. 检查您是否正确设置了服务器代理。
  3. 检查您的服务器是否不是 URL 以一种奇怪的方式重写请求。
  4. 在原始的基础上创建 Sitecore.Data.Validators.ItemValidators.FullPageXHtmlValidator 的新实现,更新 Sitecore 中的验证器项目以使用您的新验证器,然后在其上运行调试器。
  5. 禁用 XHtml 验证器(这取决于您的实现要求)。
于 2014-10-21T07:05:46.290 回答
1

首先,当您尝试渲染页面时页面会加载还是崩溃?

如果可行,接下来要检查的是,如果您查看 web.config,则有一个指定验证检查的 url。查看您列出的内容。这应该是默认值。

<setting name="HtmlEditor.ValidatorServiceUrl" value="http://validator.w3.org/check" />

如果未设置为该值,请将其放入并重试。如果您能够访问该页面,请查看它是否手动验证。如果它能够手动检查并返回成功的结果,那么我建议向 Sitecore 支持提交一张票。

于 2013-07-23T17:42:58.820 回答
1

(500) 内部服务器错误是一个通用的 HTTP 状态代码,表示网站的服务器出现问题,服务器无法更具体地说明确切的问题是什么。这很可能意味着这是页面或站点编程的问题,与您无关。

于 2013-07-15T14:41:01.647 回答
0

当您尝试验证本地 IIS 环境中的项目时,会发生此行为。W3 验证器无法访问您的本地 Web 应用程序。

于 2015-03-18T16:27:13.497 回答