Window Live Writer 发布日志遭遇 xmlrpc 错误的解决方案

Window Live Writer (简称 WLW)是微软发布的一款免费的博客客户端写作、发布软件。Wind…

Window Live Writer (简称 WLW)是微软发布的一款免费的博客客户端写作、发布软件。Window Live Writer 支持各种主流的博客软件,比如 WordPress ,只要你的博客程序支持 xmlrpc 协议。不过在使用 Live Writer 发表日志的时候,偶尔会遇到一些错误,其中最常见错误就是 xmlrpc 错误,“服务器响应无效”。今天我们来给大家介绍一下这个问题以及相应的处理办法。

使用 Window Live Writer 发布博客到 WordPress ,最经常遇到 xmlrpc 错误是这样的:

Invalid Server Response

The response to the metaWeblog.newMediaObject method received from the weblog server was invalid:

Invalid response document returned from XmlRpc server

倘若你使用的是中文版的 Window Live Writer ,则是这样的:

服务器响应无效

从日志服务器接收的对 metaWeblog.newMediaObject method 方法的响应无效:

Invalid response document returned from XmlRpc server

即使在 WordPress 官方论坛上,我们也遇到很多 WordPress 遭遇同样的问题;而对于这一问题,并没有确定的原因和解决方案。我们这里将我们所了解的办法,给大家介绍一下,希望能对你有所帮助。

常见的四种情况

  1. 这可能是由于 PHP 版本所引起的问题。解决办法:打开 xmlrpc.php 文件(在wordpress的主目录下),添加如下代码到文件的顶部,<?php 之后:
    $HTTP_RAW_POST_DATA = file_get_contents(“php://input”);
  2. 也可能是由于 .htaccess 规则错误所引起的。解决办法:将如下代码复制到 .htaccess 文件:
    <Files xmlrpc.php>
        SecFilterInheritance Off
    </Files>
  3. 还有可能是由于 WLW 与某个已经安装启用的 WordPress 插件冲突。解决方案:禁用所有的 WordPress 插件,然后逐一启用,可找出具体的插件。
    WordPress 论坛有位网友曾经遇到过 Window Live Writer 与 WordPress Super Cache 插件冲突的情况,下载新的版本即可解决;还有一个网友是因为 Window Live Writer 与插件 NextGEN 冲突,禁用此插件即可。
    因此,如果你遇到 xmlrpc 错误,可以考虑一下是不是最近增加或者修改过某个WordPress插件。
  4. xmlrpc.php 文件中增加了一些代码,调用到一些函数无法执行。解决方案:这个稍微困难一些,你可以使用 Fiddler 来监测 WLW 和你的主机之间的流量,查看都调用了哪些函数,然后找出原因。
    有个网友在使用 Live Writer 上传图片过程中,由于使用的ftp客户端软件将上传的文件名强制修改为小写,也遇到了同样的问题,最后通过这个办法找到了原因:(。

以上四个是解决 Live Writer 的”Invalid server response”错误的常用的办法。

路径错误也会造成同样的问题

昨天我们一个网友网行志,从其他主机迁移到WPChina主机之后,也遇到了同样的问题。不过他的问题并不是由于 xmlrpc 错误造成的,而是主机迁移之后,图片上传文件的路径不一样造成的;因此只要所撰写的博客里有图片,就会遇到 Invalid Server Response

在 WordPress 的后台,有个“选项”->“杂项”,其中有一项是用来设置 WordPress 上传目录,你以后通过 WordPress 直接上传的文件,包括使用 Live Writer 写博客的时候,所上传的图片等附件也直接上传到以上目录中。

默认情况下,WordPress 的上传目录是 wordpress/wp-content/uploads/ 文件夹。但是,WordPress 所记住的并不是相对目录,而是根据服务器不同而生成的服务器上的绝对目录。

比如说,当你的网站在 A 服务器上安装的时候,这个目录有可能是:

/home/username/public_html/wordpress/wp-content/uploads/

而到了 B 服务器上之后,即便是 username 完全一致,也有可能变成了:

/home2/username/public_html/wordpress/wp-content/uploads/

只是一个数字之差,但目录错误,WordPress 就找不到对应的目录,无法上传图片和其他文件,也会引发同样的 xmlrpc 错误。

即使在不更换服务器的情况下,如果你修改了 wordpress 的安装目录,也会引发同样的问题,在这里我们提醒 WordPress 用户务必注意这一点。

针对这一情况,你只需要在 WordPress 的“后台”->“选项”->“杂项”中,输入正确的上传目录即可。假如你使用的 WordPress 默认的目录,那么直接删除这一项的内容,重新保留空白即可。

类别:WordPress经验

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT