Last night I implemented the Pingback API on KillerBlog. Pingback uses XML-RPC instead of SOAP. XML-RPC is a platform-independent simpler version of SOAP. For the implementation, I walked the same road as dasBlog and .Text by using CookComputing’s XML-RPC.NET assembly. I did find out about another .NET implementation of XML-RPC called XmlRpcCs, which is 100% managed C# (just like CookComputing, BTW). The reason I did not choose the latter is that it is targeted to be used as a standalone server/service. All I wanted was to build an HttpHandler class. The XmlRpcService base class of XML-RPC.NET already implements the IHttpHandler interface.
In KillerBlog I also check to see whether a pingback has already been registered. This seems to be missing from both dasBlog and .Text
Here are the links that I found useful while working on Pingback:
Anyway, earlier in my blog I noticed that TrackBacks (and Pingbacks) don’t work on my server that hosts dasBlog. It keeps giving these WebExceptions “The underlying connection was closed: The remote name could not be resolved”. There is not a fair amount of things to find on this message, except for some newsgroups and forums, plus this Microsoft KB article. All of these suggest this occurs when you are behind a proxy whose settings weren’t adopted by the network layer of .NET. They suggest specifying the proxy either programmatically or in your config file. What’s strange is that I am not behind a proxy, just a firewall. The firewall does perform some NAT for me, however.
I ran into the exact same problems when implementing pingback. Which made me wonder. Tried the KB approach without success (just to be sure). As it turns out, the same exceptions occur when connecting to a DNS name that corresponds to the localhost or 127.0.0.1 loopback address. You see, I have this entry in my hosts file to mimic a DNS name for my machine:
When I changed my hosts file and changed the entry there to my internal IP address like this:
everything worked like a charm. Hope this helps anyone.