Windows Live Writer e wordpress, quando l’xmlrpc smette di funzionare!
visto 2.311 volte Stampa questo articoloNegli ultimi periodi non riuscivo più a far funzionare “Windows Live Writer” con questo blog su piattaforma “wordpress”, l’errore era sempre lo stesso:
La risposta al metodo metaWeblog.newPost ricevuta dal server del blog non era valida:
Invalid response document returned from XmlRpc server
Questa l’iconcina magica che appariva:
La cosa interessante è che l’articolo veniva comunque scritto, quindi (mi son detto) il problema è nella risposta che il server ritorna a WLW.
Come al solito “girettando” per la rete ho letto e visto una serie infinita di risposte al quesito ma, haimè, nessuna di queste si è dimostrata definitiva e risolutiva.
C’è chi consiglia di disinstallare il plugin “ Google XmlSiteMap Generator”, poi chi notifica a Google che ho fatoo un’articolo?
Chi di lasciar stare WLW perchè fa schifo, ma a me piace!!!
Alla fine sono arrivato su un sito che mi ha “illuminato”, questo l’articolo, molto interessante e che soprattutto sembrava fatto su misura per il mio problema.
In sostanza Peter Van Eeckhoutte ci dice che dobbiamo innanzitutto andare ad analizzare il log di WLW, cliccando su “?” – “Informazioni su Windows Live Writer” – “Modifica File registro”
In questo modo si apre la cartella del Log di WLW, nel mio PC è il file è il seguente: Windows Live Writer.log
Ora andiamo a vedere l’errore scritto nel file di log:
WindowsLiveWriter,242492,None,00013,19-Nov-2009 16:59:56.962,"Exception parsing XML-RPC response:
WindowsLive.Writer.CoreServices.XmlRpcClientInvalidResponseException: Invalid response document returned from XmlRpc server —> System.Xml.XmlException: Fine file imprevista durante l’analisi di Name. Riga 10, posizione 8.
in System.Xml.XmlTextReaderImpl.Throw(Exception e)
in System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
in System.Xml.XmlTextReaderImpl.Throw(Int32 pos, String res, String arg)
in System.Xml.XmlTextReaderImpl.ParseQName(Boolean isQName, Int32 startOffset, Int32& colonPos)
in System.Xml.XmlTextReaderImpl.ThrowTagMismatch(NodeData startTag)
in System.Xml.XmlTextReaderImpl.ParseEndElement()
in System.Xml.XmlTextReaderImpl.ParseElementContent()
in System.Xml.XmlTextReaderImpl.Read()
in System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace)
in System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc)
in System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
in System.Xml.XmlDocument.Load(XmlReader reader)
in System.Xml.XmlDocument.LoadXml(String xml)
in WindowsLive.Writer.CoreServices.XmlRpcMethodResponse..ctor(String responseText)
— Fine dell’analisi dello stack dell’eccezione interna —
in WindowsLive.Writer.CoreServices.XmlRpcMethodResponse..ctor(String responseText)
in WindowsLive.Writer.CoreServices.XmlRpcClient.CallMethod(String methodName, XmlRpcValue[] parameters)
<?xml version=""1.0""?>
<methodResponse>
<params>
<param>
<value>
<string>821</string>
</value>
</param>
</params>
</metho",""
WindowsLiveWriter,242492,Fail,00014,19-Nov-2009 16:59:57.009,"WindowsLive.Writer.Extensibility.BlogClient.BlogClientInvalidServerResponseException: Risposta del server non valida – La risposta al metodo metaWeblog.newPost ricevuta dal server del blog non era valida:
Invalid response document returned from XmlRpc server
in WindowsLive.Writer.BlogClient.Clients.XmlRpcBlogClient.CallMethod(String methodName, XmlRpcValue[] parameters)
in WindowsLive.Writer.BlogClient.Clients.MetaweblogClient.MetaweblogNewPost(String blogId, BlogPost post, Boolean publish)
in WindowsLive.Writer.BlogClient.Clients.MetaweblogClient.NewPost(String blogId, BlogPost post, INewCategoryContext newCategoryContext, Boolean publish)
in WindowsLive.Writer.BlogClient.Clients.XmlRpcBlogClient.NewPost(String blogId, BlogPost post, INewCategoryContext newCategoryContext, Boolean publish, String& etag, XmlDocument& remotePost)
in WindowsLive.Writer.BlogClient.Blog.NewPost(BlogPost post, INewCategoryContext newCategoryContext, Boolean publish)
in WindowsLive.Writer.PostEditor.UpdateWeblogAsyncOperation.DoWork()
in WindowsLive.Writer.CoreServices.AsyncOperation.InternalStart()"," in System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
in System.Environment.get_StackTrace()
in WindowsLive.Writer.CoreServices.Diagnostics.LogFileTraceListener.Fail(String message)
in System.Diagnostics.TraceInternal.Fail(String message)
in System.Diagnostics.Trace.Fail(String message)
in WindowsLive.Writer.PostEditor.BlogPostEditingManager.UpdateWeblog(Boolean publish)
in WindowsLive.Writer.PostEditor.BlogPostEditingManager.PostToWeblog(Boolean publish)
in WindowsLive.Writer.PostEditor.BlogPostEditingManager.Publish()
in WindowsLive.Writer.PostEditor.PostEditorMainControl.commandPostAndPublish_Execute(Object sender, EventArgs e)
in WindowsLive.Writer.ApplicationFramework.Command.RaiseEvent(Object eventKey, EventArgs e)
in WindowsLive.Writer.ApplicationFramework.Command.OnExecute(EventArgs e)
in WindowsLive.Writer.ApplicationFramework.CommandBarButtonLightweightControl.OnMouseUp(MouseEventArgs e)
in WindowsLive.Writer.Controls.LightweightControl.RaiseMouseUp(MouseEventArgs e)
in WindowsLive.Writer.Controls.LightweightControlContainerControl.OnMouseUp(MouseEventArgs e)
in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
in System.Windows.Forms.Control.WndProc(Message& m)
in System.Windows.Forms.ScrollableControl.WndProc(Message& m)
in System.Windows.Forms.ContainerControl.WndProc(Message& m)
in System.Windows.Forms.UserControl.WndProc(Message& m)
in WindowsLive.Writer.Controls.LightweightControlContainerControl.WndProc(Message& m)
in System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
in System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
in System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
in System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
in System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
in System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
in System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
in System.Windows.Forms.Application.Run(Form mainForm)
in WindowsLive.Writer.ApplicationFramework.SatelliteApplicationForm.Launcher.ThreadMain(Object[] parameters)
in WindowsLive.Writer.CoreServices.Threading.ThreadStartWithParams.Run()
in System.Threading.ThreadHelper.ThreadStart_Context(Object state)
in System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
in System.Threading.ThreadHelper.ThreadStart()"
WindowsLiveWriter,242492,None,00015,19-Nov-2009 16:59:57.009,"DisplayableException occurred: WindowsLive.Writer.Extensibility.BlogClient.BlogClientInvalidServerResponseException: Risposta del server non valida – La risposta al metodo metaWeblog.newPost ricevuta dal server del blog non era valida:
Invalid response document returned from XmlRpc server
in WindowsLive.Writer.BlogClient.Clients.XmlRpcBlogClient.CallMethod(String methodName, XmlRpcValue[] parameters)
in WindowsLive.Writer.BlogClient.Clients.MetaweblogClient.MetaweblogNewPost(String blogId, BlogPost post, Boolean publish)
in WindowsLive.Writer.BlogClient.Clients.MetaweblogClient.NewPost(String blogId, BlogPost post, INewCategoryContext newCategoryContext, Boolean publish)
in WindowsLive.Writer.BlogClient.Clients.XmlRpcBlogClient.NewPost(String blogId, BlogPost post, INewCategoryContext newCategoryContext, Boolean publish, String& etag, XmlDocument& remotePost)
in WindowsLive.Writer.BlogClient.Blog.NewPost(BlogPost post, INewCategoryContext newCategoryContext, Boolean publish)
in WindowsLive.Writer.PostEditor.UpdateWeblogAsyncOperation.DoWork()
in WindowsLive.Writer.CoreServices.AsyncOperation.InternalStart()",""
Dovreste avere un file simile a questo, se è cosi allora andate a vedere la riga che ho ingrandito relativa all’xml di risposta ossia:
</metho",""
L’errore è qui!!!! Come si vede la stringa è troncata, manca la parte finale ossia “dResponse>”
Perchè questo?
Anche il buon Peter ci dice che non sa di preciso perchè accada ciò:
“This is caused because something (a plugin ? my webserver (IIS) ? something else ?) decided to add UTF-8 BOM to the XML-RPC response. Result : the xml response is 3 bytes longer than expected, which causes the xml response to be truncated.”
Però, cosa assai più interessante, ci da la soluzione al problema!
Ci dice quindi di andare a cercare ed editare il file:
wp-includes/class-IXR.php
ossia la classe deputata alla gestione del protocollo xmlrpc sotto wordpress.
Cerchiamo poi la funzione:
function output($xml)
e nella funzione cerchiamo la riga:
$length = strlen($xml);
Peter ci dice poi di sostituirla con la stringa
$length = strlen($xml)+3;
L’ho fatto però ho subito verificato che l’off-set “+3”, nel mio caso, non era sufficiente, infatti l’errore rimaneva e mi ritornava:
</methodR",""
cosi ho sostituito con:
$length = strlen($xml)+10;
In questo modo WLW ha ripreso a funzionare alla grande.
Etrusco
Articoli correlati:
- il mio primo post con Windows Live Writer
- wordpress, la lista dei plugin installati sul mio blog.
- Installare wordpress su server Win Aruba con IIS, MySql e permessi di scrittura alla cartella wp-content – altri settaggi.
- Da dblog a wordpress, pensando.it cambia pelle
- Aggiornare wordpress alla versione 2.8 su server Win Aruba con IIS, MySql e permessi di scrittura alla cartella wp-content.
2 Responses to Windows Live Writer e wordpress, quando l’xmlrpc smette di funzionare!
Lascia un Commento Annulla risposta
Donazione via PayPal
Ti è piaciuto il contenuto del blog? Fai una donazione libera all'etrusco, l'importo lo scegli tu.
AD
Articoli più visti
- Le frasi più belle dei sette libri di Harry Potter - visto 93.024 volte
- Le Ricette della pulce: la torta Moretta - visto 42.882 volte
- Autofocus e Modo Area AF, i settaggi per una corretta messa a fuoco. - visto 18.324 volte
- Come rimuovere definitivamente searchqu dal proprio pc con Hijackthis - visto 18.293 volte
- Installare wordpress su server Win Aruba con IIS, MySql e permessi di scrittura alla cartella wp-con... - visto 14.549 volte
I migliori di sempre
- 10.0: Sviluppare un rullino in bianco e nero - il fotoracconto (7 votes)
- 9.8: theworldin35mm: photoblog template per wordpress e YAPB (6 votes)
- 9.7: Le frasi più belle dei sette libri di Harry Potter (70 votes)
- 9.7: Capire l'esposizione (7 votes)
- 9.7: Workshop si, workshop no, ma tu la conosci Claudia? (6 votes)
I migliori mese
News dal Forum Analogica.it
- ingranditore per le vacanze 5 ore fa
- Prodotti per sviluppo e fissaggio e loro durata. 10 ore fa
- [Cerco] materiale per camera oscura 10 ore fa
Altri blog interessanti
acor3 dblog
Chiudi anteprima
Loading...adolfo.trinca.name
Chiudi anteprima
Loading...analogica.it
Chiudi anteprima
Loading...Dario Salvelli's Blog
Chiudi anteprima
Loading...Dott. Stefano Scatena, psicologo
Chiudi anteprima
Loading...etrusco's photoblog
Chiudi anteprima
Loading...Latente photo blog
Chiudi anteprima
Loading...Marlenek Blog
Chiudi anteprima
Loading...Piero Forconi
Chiudi anteprima
Loading...sandro iovine blog
Chiudi anteprima
Loading...sara lando
Chiudi anteprima
Loading...sirsly blog
Chiudi anteprima
Loading...stormy monday blog
Chiudi anteprima
Loading...
Categorie
Archivi
Downloads
- theworldin35mm.zip (232,5 KiB, 1.665 download)
- wp-settings (5,7 KiB, 1.373 download)
- wp-downloadmanager.1.40.zip (81,2 KiB, 1.150 download)
- about_page_theworldin35mm.zip (403 bytes, 1.012 download)
- etrusco.zip (89,7 KiB, 925 download)
Tag
analogica analogica.it arte beppe grillo blog bomarzo camera oscura classifica flickr concorso d40x dblog etrusco film filosofi filosofia flickr flickr rank foto fotografi fotografia google harry Harry Potter i doni della morte ilford libri libro lost matrimonio mutuo nikon nikon d40x italia nital pensando.it photoblog plugin potter reflex tagcloud template tempo url rewriting viterbo wordpress wp








Grazie!
prego