Recently i changed my host of this blog and when i tried to use windows live writer for posting to this blog i got error. It was related with xmlrpc.php file.
few ppl might also get error like shown above or error 500.
Though i am not an expert in php but for understanding the problem one need not to be any expert. So i figured it out and tried various methodologies but all went in vein. Finally i was able to rectify the problem. So i decided to write this article so that other people may solve the problem without any much effort. I will write the steps in order so that your problem may be solved quickly
Step 1: Rename the xmlrpc.php file to anyname.php but make sure that it should not contain xml and rpc term in it. [This is how i finally solved my problem with techian.com]. It happens due to foolishness of your host. Actually to prevent the hacking attempts the host providers installs some mod on apache and instead of blocking the hacking attempts only it block all access to this file.This should solve your problem. if not then try next step. Just by renaming it we bypass this restriction. 🙂
Step 2: View the log file of windows live writer. For Beta 3 and later: In the Help | About Windows Live Writer dialog, click the “show log file” link. If you are not able to find it then see This link. This is specially when you see error like:
If you see log as:“Invalid Server Response – The response to the blogger.getUsersBlogs method received from the weblog server was invalid: Invalid response document returned from XmlRpc server”
The log file will show something like :
<b>Warning</b>: include_once(public_html/www.seo-scientist.com/wp-includes/class-IXR.php) [<a href=’function.include-once’>function.include-once</a>]: failed to open stream: No such file or directory in <b>/public_html/www.seo-scientist.com/xmlrpc.php</b> on line <b>43</b><br />
<b>Warning</b>: include_once() [<a href=’function.include’>function.include</a>]: Failed opening ‘/public_html/www.seo-scientist.com/wp-includes/class-IXR.php’ for inclusion in <b>/public_html/www.seo-scientist.com/xmlrpc.php</b> on line <b>43</b><br />
<b>Fatal error</b>: Class ‘IXR_Server’ not found in <b>/public_html/www.seo-scientist.com/xmlrpc.php</b> on line <b>73</b><br />
It means some stupid FTP client has converted all filenames to lowercase. One change of one filename and your problem will be solved.
Step 3: There is a problem with the PHP version. Solution: the following code should be added to the top of the xmlrpc.php file:
$HTTP_RAW_POST_DATA = file_get_contents(“php://input”);
Step 4: There is a problem with .htaccess. The following code should be added to the .htaccess file:
<Files xmlrpc.php>
SecFilterInheritance Off
</Files>
Step 5: There is a clash between WLW and some of the installed plugins. Disable the clashing plugins.
Step 6: There are some extra lines in all kind of files that xmlrpc.php is referring to so the php functions calling those file are not able to execute. Solution: Use Fiddler to monitor the HTTP traffic between the WLW and your hosting and find the calls to files that are giving the error.
Step 7: If you are running older versions of php then you need to alter your .htaccess file. You can therefore fix the problem by adding a couple of lines to your .htaccess file on your server. These are the lines you need to add:
AddType x-mapp-php5 .php AddHandler x-mapp-php5 .php
I have given all possible set of problems and their solutions. Still If your problem is not solved then do let me know by your valuable comments. I will try to help you. Thanks for reading my post.
Regards
Techian
Your net friend 🙂