Windows Live Writer e wordpress, quando l’xmlrpc smette di funzionare!
visto 2.175 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
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.
Commenti recenti
Articoli più visti
- Le frasi più belle dei sette libri di Harry Potter - visto 82.445 volte
- Le Ricette della pulce: la torta Moretta - visto 35.864 volte
- Autofocus e Modo Area AF, i settaggi per una corretta messa a fuoco. - visto 15.592 volte
Articoli recenti
I migliori di sempre
- 10.0: Sviluppare un rullino in bianco e nero - il fotoracconto (6 votes)
- 9.8: theworldin35mm: photoblog template per wordpress e YAPB (6 votes)
- 9.7: Capire l'esposizione (7 votes)
- 9.7: Workshop si, workshop no, ma tu la conosci Claudia? (6 votes)
- 9.6: Le frasi più belle dei sette libri di Harry Potter (48 votes)
I migliori mese
- 10.0: Non fiori ma opere di bene (1 vote)
News dal Forum Analogica.it
- Ho cambiato le guarnizioni alla pentax super a 15 ore fa
- Verso l'ingranditore.. 17 ore fa
- E' possibile? 21 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.459 download)
- wp-settings (5,7 KiB, 1.161 download)
- wp-downloadmanager.1.40.zip (81,2 KiB, 958 download)
- about_page_theworldin35mm.zip (403 bytes, 815 download)
- etrusco.zip (89,7 KiB, 741 download)
Tag
analogica analogica.it arte beppe grillo blog bomarzo camera oscura classifica flickr concorso d40x dblog etrusco film filosofi filosofia flickr 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 platone plugin potter reflex tagcloud template tempo url rewriting viterbo wordpress wp








Grazie!
prego