Windows Live Wrightがエラーが出てWordpressに接続できない。
同じクライアント環境から2つのWordpressに接続しているのですがなぜか一方だけ突然上記エラーが出て接続できなくなってしましました。
サーバー、クライアントの環境
<<サーバー側環境>>
- WordPress 3.9.2
- PHP5.3.3
- MySQL バージョン 5.5.37
<<クライアント側環境>>
- Windows 8.1 64bit
- Windows Live Write 2012
エラー内容
サーバー側に接続しようとすると以下のようなメッセージが表示され接続(投稿)出来ない。
<<ポップアップ中のメッセージ>>
ログイン中に予期しないエラーが発生しました。
サーバーの応答が無効ですーブログサーバーから受信した
blogger.getUsersBlogsメソッドへの応答が無効です。
invalid response document returned from XmlrRpc server
次にログオン用のユーザーとパスワードを入力する
プロンプトが表示されますが正しい値を入力しても
ログオンすることが出来ません。
ただ、同一環境で同一サーバー上の別のWordpressには問題なく接続できている。
<<Windows Live Write ログファイルの抜粋>>
WindowsLiveWriter,1.5476,None,00017,21-Aug-2014 10:31:54.835,”UpdateSemanticHtmlPreviewAsyncOperation started for blog(xxxxxx)”,””
WindowsLiveWriter,1.5476,None,00018,21-Aug-2014 10:32:48.176,”Creating a writable ribbon istream for C:\Users\xxxx\AppData\Roaming\Windows Live Writer\Ribbon.dat”,””
WindowsLiveWriter,1.5476,None,00019,21-Aug-2014 10:48:11.226,”Exception parsing XML-RPC response:
WindowsLive.Writer.CoreServices.XmlRpcClientInvalidResponseException: Invalid response document returned from XmlRpc server —> System.Xml.XmlException: Name の解析中に、予期しないファイルの終わりが検出されました。 行 18、位置 16 です。
場所 System.Xml.XmlTextReaderImpl.Throw(Exception e)
場所 System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
エラーが出る前に行った作業
1)プラグインの”Akismet”の有効化
2)functions.phpの追記
いわゆるショートコードの追記をしました。
上記二つともに無効にしても現象は変わらない様ですので直接は関係ないようです。
対応内容
- インターネット上でのエラー情報確認
- WordPressフォーラムでの質問投稿
- 契約しているサーバーの問い合わせ窓口への質問
当然1のインターネット上でのエラー情報確認から行ってみましたが
接続エラーの情報は散見されましたがなかなか状況がマッチする情報が得られないので
2のWordpressフォーラムでの質問投稿も行ってみましたが有効な回答は得られませんでした。
サーバーのサポート窓口にも問い合わせをしてみましたが想定通りソフトの質問には対応できないという回答でした。でもあなたの会社が用意しているソフトだけどねとは少し思いましたが完全にマニュアル通りの回答の様でしたので揉めるだけ時間の無駄と判断しました。
やっと解決
結局数日間使えない状態が続いたのですがGoogleでの検索の仕方を変えて英語部分のエラーメッセージで検索をするとヒットするページが発見出来ました。
Corelan Teamというサイトの
Windows Live Writer unable to connect to WordPress Blog
という記事です。
中身的にはIISの場合の問題の様ですが
ログファイルのエラーから見て
受け取るときのヘッダxmlファイルのレングスに問題が有るようなのは容易に想像できますのでここに記載されている対応が効くのではないかと思いました。
実際に行った対応はclass-IXR.phpの一部を変更いたしました。
※一応+3にすることでとりあえずは使えています。
注:変更を行う際はバックアップを取ってから行うことをお勧めします。
<<修正箇所抜粋>>
function output($xml)
{
$charset = function_exists(‘get_option’) ? get_option(‘blog_charset’) : ”;
if ($charset)
$xml = ‘<?xml version=”1.0″ encoding=”‘.$charset.'”?>’.”\n”.$xml;
else
$xml = ‘<?xml version=”1.0″?>’.”\n”.$xml;
// ここが修正箇所です。
// $length = strlen($xml);
$length = strlen($xml)+3;
header(‘Connection: close’);
header(‘Content-Length: ‘.$length);
で結局真の原因は判らずじまいでしたがなんとか解決をすることが出来ました。
でもこのブログやけに問題ばかり起こる気がするのですけど何か原因が有るのかな。。
以上
コメント
はじめまして。大迫力と申します。
記載されている内容と同じ現象になってしまい困っていたところ、紹介されている内容で回復しました。
昼間まで全然問題なかったんですが・・・
情報ありがとうございました。(感謝!)
大迫力さん、お役に立てたようでうれしいです。
これ正直原因は良く判らないのですが+3で運用していたところ
再度同じエラーが発生したのでもう少し長さを伸ばしました。
また、Wordpressのバージョンをあげるとどうもこのファイルが
新しくなる様で設定が戻ってしまいます。
直ぐにエラーが出るわけではないので再発した時に
対応するという感じで私は運用しています。
ところで北九州にお住まいなのですか?
今度4月の頭に北九州ではなくて博多ですが行く予定です。
お酒が飲めるお店で地元の物が食べられるお勧めをご存知でしたら
教えて頂けませんか。
以上