验证 - 呈现项有效xhtml - 异常

时间:2013-07-15 09:01:25

标签: validation xhtml sitecore sitecore7

当我在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 个答案:

答案 0 :(得分:2)

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

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

  1. 建立当前项目的友好URL(使用额外的参数来处理语言,设备等)。
  2. 使用组合网址创建网页请求并检索此网页(这是错误最有可能发生的地方)。
  3. 下载回复并将其发送给W3C Validator(这里有更多逻辑,但这可能不是OP问题的原因)。
  4. 将验证信息返回给用户。
  5. 那为什么会破坏?

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

    如何修复XHTML验证器问题

    您的服务器可能未正确配置以允许自己的Web请求。以下是一些可能对您有所帮助的快速创意。

    1. 如果您使用的话,请检查您是否拥有有效的SSL证书(自签名无效)。
    2. 检查您是否正确设置了服务器代理。
    3. 检查您的服务器是否为URL以奇怪的方式重写请求。
    4. 根据原始版本创建Sitecore.Data.Validators.ItemValidators.FullPageXHtmlValidator的新实现,更新Sitecore中的验证程序项目以使用您的新验证程序,然后在其上运行调试程序。
    5. 禁用XHtml验证程序(这取决于您的实施要求)。

答案 1 :(得分:1)

(500)内部服务器错误是一般的HTTP状态代码,这意味着网站服务器上出现了问题,服务器无法确定具体问题。这很可能意味着这是页面或网站编程的问题,没有任何与你有任何关系。

答案 2 :(得分:1)

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

如果可行,接下来要检查的是,如果查看web.config,则会指定一个指定验证检查的URL。看看你列出了什么。这应该是默认值。

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

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

答案 3 :(得分:0)

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