Live Writer не дружит с Lite Publisher
05.08.2011Голосование
| Тип | Ошибка |
| Состояние | Исправлено |
| Приоритет | Высокий |
| Версия | 4.79 |
| Система | * |
| Воспроизводимость | Нет |
| Автор | Borigen |
| Исполнитель | Блоголётчик |
Не хочет с последней версией Lite Publisher (на мускуле) дружить Live Writer. Сначала вроде все идет хорошо, заголовок сайта видит, но под конец формирования учетной записи выскакивает "Непредвиденная ошибка" и учетная запись создается, но дефектная. Она может считывать заголовки записей в блоге, но не может загрузить сами статьи. Новые записи через Live Writer опубликовываются нормально. А вот редактировать через него невозможно, так как не может считать свою же запись.
Код
Так ругается Live Writer:
5 августа 2011 г. 0:51:23
Version: 14.0.8050.1202
OS Version: Microsoft Windows NT 6.1.7601 Service Pack 1
Runtime version: 2.0.50727.5446
Shutdown started: False
Program: C:\Users\Борис\Downloads\WindowsLiveWriterPortable\App\WindowsLiveWriter\WindowsLiveWriter.exe
Memory Load: 48%
Total Physical: 4095 MB
Available Physical: 2115 MB
Total Page File: 8188 MB
Available Page File: 5800 MB
Total Virtual: 2047 MB
Available Virtual: 1673 MB
Available Extented Virtual: 0 MB
Unexpected Error Occurred
An unexpected error has occurred within the application.
System.NullReferenceException: В экземпляре объекта не задана ссылка на объект.
в WindowsLive.Writer.BlogClient.BlogProviderButtonDescription.Clone()
в WindowsLive.Writer.PostEditor.Configuration.TemporaryBlogSettings.CopyFrom(TemporaryBlogSettings sourceSettings)
в WindowsLive.Writer.PostEditor.Configuration.Settings.WeblogSettingsManager.EditSettings(IWin32Window owner, TemporaryBlogSettings blogSettings, Boolean showAccountSettings)
в WindowsLive.Writer.PostEditor.Configuration.Settings.WeblogSettingsManager.EditSettings(IWin32Window owner, String id, Boolean showAccountSettings)
в WindowsLive.Writer.PostEditor.PostEditorMainControl.WindowsLive.Writer.PostEditor.IBlogPostEditingSite.ConfigureWeblog(String blogId)
в WindowsLive.Writer.PostEditor.WeblogCommandManager.commandConfigureWeblog_Execute(Object sender, EventArgs e)
в WindowsLive.Writer.ApplicationFramework.Command.RaiseEvent(Object eventKey, EventArgs e)
в WindowsLive.Writer.ApplicationFramework.Command.OnExecute(EventArgs e)
RSS комментарии к этой записи
Рубрики: Ошибки
← Ранее Индивидуальные меню у страниц
Позже Мультизагрузка файлов, xmlrpc →
Комментарии (30) на запись “Live Writer не дружит с Lite Publisher”
Оставить комментарий
Еще раз тестировал - у меня все работает, для выявления ошибки рекомендую в корневом файле index.php вместо
public static $debug = false;
поставить
public static $debug = true;
после чего сделать попытку работы с блогклиентом, после ошибок отправить мне файл storage/data/log/xmlrpc.txt передварительно удалив оттуда пароль к сайту (он там будет прямым текстом). Только после этого я смогу сделать выводы
Вот такая портянка xmlrpc.txt:
Sat, 06 Aug 2011 11:52:56 +0400
request:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>blogger.getUsersBlogs</methodName>
<params>
<param>
<value>
<string>0123456789ABCDEF</string>
</value>
</param>
<param>
<value>
<string>admin</string>
</value>
</param>
<param>
<value>
<string>пароль</string>
</value>
</param>
</params>
</methodCall>
Sat, 06 Aug 2011 11:52:56 +0400
responnse:
<?php
@header('Connection: close');
@header('Content-Length: 460');
@header('Content-Type: text/xml');
@header('Date: Sat, 06 Aug 2011 11:52:56 +0400');
@Header( 'Cache-Control: no-cache, must-revalidate');
@Header( 'Pragma: no-cache');
@header('X-Pingback: http://domen.ru/rpc.xml');
echo'<?xml version="1.0"?>
';
?><methodResponse>
<params>
<param>
<value>
<array><data>
<value><struct>
<member><name>url</name><value><string>http://domen.ru/</string></value></member>
<member><name>blogid</name><value><string>1</string></value></member>
<member><name>blogName</name><value><string>Название блога</string></value></member>
</struct></value>
</data></array>
</value>
</param>
</params>
</methodResponse>
Sat, 06 Aug 2011 11:52:56 +0400
request:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>blogger.getUsersBlogs</methodName>
<params>
<param>
<value>
<string>0123456789ABCDEF</string>
</value>
</param>
<param>
<value>
<string>admin</string>
</value>
</param>
<param>
<value>
<string>пароль</string>
</value>
</param>
</params>
</methodCall>
Sat, 06 Aug 2011 11:52:56 +0400
responnse:
<?php
@header('Connection: close');
@header('Content-Length: 460');
@header('Content-Type: text/xml');
@header('Date: Sat, 06 Aug 2011 11:52:56 +0400');
@Header( 'Cache-Control: no-cache, must-revalidate');
@Header( 'Pragma: no-cache');
@header('X-Pingback: http://domen.ru/rpc.xml');
echo'<?xml version="1.0"?>
';
?><methodResponse>
<params>
<param>
<value>
<array><data>
<value><struct>
<member><name>url</name><value><string>http://domen.ru/</string></value></member>
<member><name>blogid</name><value><string>1</string></value></member>
<member><name>blogName</name><value><string>Название блога</string></value></member>
</struct></value>
</data></array>
</value>
</param>
</params>
</methodResponse>
Sat, 06 Aug 2011 11:52:58 +0400
request:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>wp.getCategories</methodName>
<params>
<param>
<value>
<string>1</string>
</value>
</param>
<param>
<value>
<string>admin</string>
</value>
</param>
<param>
<value>
<string>пароль</string>
</value>
</param>
</params>
</methodCall>
Sat, 06 Aug 2011 11:52:58 +0400
responnse:
<?php
@header('Connection: close');
@header('Content-Length: 2216');
@header('Content-Type: text/xml');
@header('Date: Sat, 06 Aug 2011 11:52:58 +0400');
@Header( 'Cache-Control: no-cache, must-revalidate');
@Header( 'Pragma: no-cache');
@header('X-Pingback: http://domen.ru/rpc.xml');
echo'<?xml version="1.0"?>
';
?><methodResponse>
<params>
<param>
<value>
<array><data>
<value><struct>
<member><name>categoryId</name><value><int>3</int></value></member>
<member><name>parentId</name><value><string>0</string></value></member>
<member><name>description</name><value><string></string></value></member>
<member><name>categoryName</name><value><string>Рубрика1</string></value></member>
<member><name>title</name><value><string>Рубрика1</string></value></member>
<member><name>htmlUrl</name><value><string>http://domen.ru/rubrika/</string></value></member>
<member><name>rssUrl</name><value><string>http://domen.ru/rss/categories/3.xml</string></value></member>
</struct></value>
<value><struct>
<member><name>categoryId</name><value><int>2</int></value></member>
<member><name>parentId</name><value><string>0</string></value></member>
<member><name>description</name><value><string></string></value></member>
<member><name>categoryName</name><value><string>Название блога</string></value></member>
<member><name>title</name><value><string>Название блога</string></value></member>
<member><name>htmlUrl</name><value><string>http://domen.ru/zhivaya-voda/</string></value></member>
<member><name>rssUrl</name><value><string>http://domen.ru/rss/categories/2.xml</string></value></member>
</struct></value>
<value><struct>
<member><name>categoryId</name><value><int>4</int></value></member>
<member><name>parentId</name><value><string>0</string></value></member>
<member><name>description</name><value><string></string></value></member>
<member><name>categoryName</name><value><string>Заголовок</string></value></member>
<member><name>title</name><value><string>Заголовок</string></value></member>
<member><name>htmlUrl</name><value><string>http://domen.ru/rubrika1/</string></value></member>
<member><name>rssUrl</name><value><string>http://domen.ru/rss/categories/4.xml</string></value></member>
</struct></value>
</data></array>
</value>
</param>
</params>
</methodResponse>
Sat, 06 Aug 2011 11:52:58 +0400
request:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>wp.getTags</methodName>
<params>
<param>
<value>
<string>1</string>
</value>
</param>
<param>
<value>
<string>admin</string>
</value>
</param>
<param>
<value>
<string>пароль</string>
</value>
</param>
</params>
</methodCall>
Sat, 06 Aug 2011 11:52:58 +0400
responnse:
<?php
@header('Connection: close');
@header('Content-Length: 1796');
@header('Content-Type: text/xml');
@header('Date: Sat, 06 Aug 2011 11:52:58 +0400');
@Header( 'Cache-Control: no-cache, must-revalidate');
@Header( 'Pragma: no-cache');
@header('X-Pingback: http://domen.ru/rpc.xml');
echo'<?xml version="1.0"?>
';
?><methodResponse>
<params>
<param>
<value>
<array><data>
<value><struct>
<member><name>tag_id</name><value><string>1</string></value></member>
<member><name>name</name><value><string>блог</string></value></member>
<member><name>count</name><value><string>1</string></value></member>
<member><name>slug</name><value><string></string></value></member>
<member><name>html_url</name><value><string>http://domen.ru/tag/blog.htm</string></value></member>
<member><name>rss_url</name><value><string>http://domen.ru/tag/blog.htm</string></value></member>
</struct></value>
<value><struct>
<member><name>tag_id</name><value><string>2</string></value></member>
<member><name>name</name><value><string>Тема</string></value></member>
<member><name>count</name><value><string>0</string></value></member>
<member><name>slug</name><value><string></string></value></member>
<member><name>html_url</name><value><string>http://domen.ru/tag/tema.html</string></value></member>
<member><name>rss_url</name><value><string>http://domen.ru/tag/tema.html</string></value></member>
</struct></value>
<value><struct>
<member><name>tag_id</name><value><string>3</string></value></member>
<member><name>name</name><value><string>Плагин</string></value></member>
<member><name>count</name><value><string>0</string></value></member>
<member><name>slug</name><value><string></string></value></member>
<member><name>html_url</name><value><string>http://domen.ru/tag/plagin.html</string></value></member>
<member><name>rss_url</name><value><string>http://domen.ru/tag/plagin.html</string></value></member>
</struct></value>
</data></array>
</value>
</param>
</params>
</methodResponse>
Sat, 06 Aug 2011 11:52:59 +0400
request:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>metaWeblog.getRecentPosts</methodName>
<params>
<param>
<value>
<string>1</string>
</value>
</param>
<param>
<value>
<string>admin</string>
</value>
</param>
<param>
<value>
<string>пароль</string>
</value>
</param>
<param>
<value>
<int>1</int>
</value>
</param>
</params>
</methodCall>
Sat, 06 Aug 2011 11:52:59 +0400
responnse:
<?php
@header('Connection: close');
@header('Content-Length: 4107');
@header('Content-Type: text/xml');
@header('Date: Sat, 06 Aug 2011 11:52:59 +0400');
@Header( 'Cache-Control: no-cache, must-revalidate');
@Header( 'Pragma: no-cache');
@header('X-Pingback: http://domen.ru/rpc.xml');
echo'<?xml version="1.0"?>
';
?><methodResponse>
<params>
<param>
<value>
<array><data>
<value><struct>
<member><name>dateCreated</name><value><dateTime.iso8601>20110801T11:30:42</dateTime.iso8601></value></member>
<member><name>userid</name><value><string>0</string></value></member>
<member><name>postid</name><value><string>9</string></value></member>
<member><name>description</name><value><string><p>Анонс статьи.<!-- pagebreak --></p>
<p>Текст статьи.</p></string></value></member>
<member><name>title</name><value><string>Картинка</string></value></member>
<member><name>link</name><value><string>http://domen.ru/rubrika/test.html</string></value></member>
<member><name>permaLink</name><value><string>http://domen.ru/rubrika/test.html</string></value></member>
<member><name>categories</name><value><array><data>
<value><string>Рубрика1</string></value>
</data></array></value></member>
<member><name>mt_excerpt</name><value><string><p>&ldquo;Анонс статьи <!--more--></p></string></value></member>
<member><name>mt_text_more</name><value><string></string></value></member>
<member><name>mt_allow_comments</name><value><int>1</int></value></member>
<member><name>mt_allow_pings</name><value><int>1</int></value></member>
<member><name>mt_keywords</name><value><string></string></value></member>
<member><name>wp_slug</name><value><string>/rubrika/test.html</string></value></member>
<member><name>wp_password</name><value><string></string></value></member>
<member><name>wp_author_id</name><value><int>0</int></value></member>
<member><name>wp_author_display_name</name><value><string>admin</string></value></member>
<member><name>date_created_gmt</name><value><dateTime.iso8601>20110801T07:30:42</dateTime.iso8601></value></member>
<member><name>publish</name><value><int>1</int></value></member>
</struct></value>
</data></array>
</value>
</param>
</params>
</methodResponse>
Sat, 06 Aug 2011 11:53:03 +0400
request:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>metaWeblog.newPost</methodName>
<params>
<param>
<value>
<string>1</string>
</value>
</param>
<param>
<value>
<string>admin</string>
</value>
</param>
<param>
<value>
<string>пароль</string>
</value>
</param>
<param>
<value>
<struct>
<member>
<name>title</name>
<value>
<string>Временная запись для определения темы (c655fe01-80b6-4ec0-a0b2-59ebe1a44372 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)</string>
</value>
</member>
<member>
<name>description</name>
<value>
<string><p>Это временная запись, которая не была удалена. Удалите ее вручную. (043a1789-574f-4fe5-9c40-149cac566e36 - 3bfe001a-32de-4114-a6b4-4005b770f6d7)</p></string>
</value>
</member>
<member>
<name>mt_text_more</name>
<value>
<string />
</value>
</member>
<member>
<name>mt_keywords</name>
<value>
<string />
</value>
</member>
<member>
<name>wp_slug</name>
<value>
<string />
</value>
</member>
<member>
<name>mt_basename</name>
<value>
<string />
</value>
</member>
<member>
<name>wp_password</name>
<value>
<string />
</value>
</member>
<member>
<name>categories</name>
<value>
<array>
<data />
</array>
</value>
</member>
<member>
<name>mt_excerpt</name>
<value>
<string />
</value>
</member>
</struct>
</value>
</param>
<param>
<value>
<boolean>1</boolean>
</value>
</param>
</params>
</methodCall>
Sat, 06 Aug 2011 11:53:03 +0400
responnse:
<?php
@header('Connection: close');
@header('Content-Length: 160');
@header('Content-Type: text/xml');
@header('Date: Sat, 06 Aug 2011 11:53:03 +0400');
@Header( 'Cache-Control: no-cache, must-revalidate');
@Header( 'Pragma: no-cache');
@header('X-Pingback: http://domen.ru/rpc.xml');
echo'<?xml version="1.0"?>
';
?><methodResponse>
<params>
<param>
<value>
<string>17</string>
</value>
</param>
</params>
</methodResponse>
Sat, 06 Aug 2011 11:53:04 +0400
request:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>mt.setPostCategories</methodName>
<params>
<param>
<value>
<string>17</string>
</value>
</param>
<param>
<value>
<string>admin</string>
</value>
</param>
<param>
<value>
<string>пароль</string>
</value>
</param>
<param>
<value>
<array>
<data />
</array>
</value>
</param>
</params>
</methodCall>
Sat, 06 Aug 2011 11:53:04 +0400
responnse:
<?php
@header('Connection: close');
@header('Content-Length: 161');
@header('Content-Type: text/xml');
@header('Date: Sat, 06 Aug 2011 11:53:04 +0400');
@Header( 'Cache-Control: no-cache, must-revalidate');
@Header( 'Pragma: no-cache');
@header('X-Pingback: http://domen.ru/rpc.xml');
echo'<?xml version="1.0"?>
';
?><methodResponse>
<params>
<param>
<value>
<boolean>1</boolean>
</value>
</param>
</params>
</methodResponse>
Sat, 06 Aug 2011 11:57:36 +0400
request:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
<methodName>blogger.deletePost</methodName>
<params>
<param>
<value>
<string>0123456789ABCDEF</string>
</value>
</param>
<param>
<value>
<string>17</string>
</value>
</param>
<param>
<value>
<string>admin</string>
</value>
</param>
<param>
<value>
<string>пароль</string>
</value>
</param>
<param>
<value>
<boolean>1</boolean>
</value>
</param>
</params>
</methodCall>
Sat, 06 Aug 2011 11:57:36 +0400
responnse:
<?php
@header('Connection: close');
@header('Content-Length: 161');
@header('Content-Type: text/xml');
@header('Date: Sat, 06 Aug 2011 11:57:36 +0400');
@Header( 'Cache-Control: no-cache, must-revalidate');
@Header( 'Pragma: no-cache');
@header('X-Pingback: http://domen.ru/rpc.xml');
echo'<?xml version="1.0"?>
';
?><methodResponse>
<params>
<param>
<value>
<boolean>1</boolean>
</value>
</param>
</params>
</methodResponse>
2 Блоголётчик:
А вот не знаю.. Live Writer пишет что
Unexpected Error Occurred
An unexpected error has occurred within the application.
System.ArgumentNullException: Значение не может быть неопределенным.
Имя параметра: encoder
Пробовал я и как службу wordpress задавать, и как иной - все-равно не хочет.
Ответ методу metaWeblog.getPost, полученный с сервера блога, недействительный :
Invalid response document returned from XmlRpc server
Мне помнится на самых первых версиях Блоголета такое же было.
http://explore.live.com/windows-live-writer-xp
Сейчас поправил по мелочам, можешь ли протестировать перед релизом подправленные файлы:
http://litepublisher.googlecode.com/svn/trunk/lib/xmlrpc.class.php
http://litepublisher.googlecode.com/svn/trunk/lib/xmlrpc.metaweblog.class.php
Файлы надо загрузит в lib. у меня вроде как все работает
Там так и написано Версия 2011 года, построение 15.4.3538.513
Протестил подправив файлы. Полдела сделано. Теперь пост загружается, и можно её корретировать. Это уже замечательно!
Но не хочет работать с картинками. А честно говоря я из-за картинок решил воспользоваться Live Writer. При попытке вставить в текст картинку и отправке в блог Live Writer ругается так:
Ответ методу metaWeblog.newMediaObject, полученный с сервера блога, недействителен.
Invalid response document returned from XmlRpc server
Если с файлами единственная ошибка, то я ее сейчас поправлю. А в остальном все в порядке?
Построение - это калька с английского build, что в общем то можно перевести и как релиз, не понятно почему они так скверно перевели
А так, проблему дружбы между LW и LP можно считать, в принципе, решенной.
Еще раз обнови файл
http://litepublisher.googlecode.com/svn/trunk/lib/xmlrpc.metaweblog.class.php
ошибок я там не нашел, но внес мелкое изменение, у меня все работало. Да, в редакторе постов не работал флешовый загрузчик файлов, сегодня уже исправил, странно что раньше об этом не писали, в новом релизе можно будет пачками файлы загружать.
Есть еще альтернативный способ выявить точный источник проблемы:
связку удалит файл и запустить скрипт можно выполнять неограниченное количество раз, скрипт будет просто повоторять последний xmlrpc запрос. После всей отладки надо будет удалить этот скрипт из корня сайта, а также после нового релиза вернуть первоначальный вид index.php в корне сайта
и больше ничего. Да, кстати, wlw как то по другому загружает картинку, в админке в таблице картинок она видна без титла и альта, а в самом посте титл и альт для картинки есть.
Это без последней корректировки файла xmlrpc.metaweblog.class.php
А вот когда я залил самый последний вариант ругаться вообще перестало, загружает в текст параметры картинки, а вот саму картинку не загружает совсем.