yesterday night I got 2 separate calls from 2 friends of mine who work for the same client in 2 different places, one said he's having problems with a "time out" behavior and the second one got "hang" behavior on iis.

I drove there today and together we found a quite interesting bug.

he had a distributed application : server A  is hosting asp 3.0 pages which called com+ objects that where coded in vb6. this com+ objects used ServerXMLHTTP object to call server b. server B was hosting asp 3.0 pages which called com+ object coded in vb6 (the same as server A).

sometimes, but only sometimes (as with all interesting bugs) he noticed that the event log on server B reported an error, but Server A's log didn't report anything like server B.

both servers are win2k running iis. server B was relying on the fact that if an unsupported error was happening on the server it generated an IIS server error which was redirected to a custom page which was producing a custom xml with the specified error back to server A (you can read more about custom pages like this here)

first they didn't log the xml , they only logged the fact that they had a problem, so the first thing we did is to log the xml to a file, then we hit the server and opened the generated xml with explorer, the first thing we noticed is that it didn't load, it was complaining he had encountered the following error:

The XML page cannot be displayed

Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.


An invalid character was found in text content. Error processing resource 'file:///C:/Documents and Settings/yosit/Desktop/a.xml'. Line 1, Position 5

<as>
it lacked the <? xml 1.0 encoding .....?> tag , when we added it everything went fine.
since Server A got the xml , tried to parse it and got the same error as explorer , it logged a timeout (because the code didn't take that into account). 
if it was .net exceptions we would have been on it on the first time. thnx god for .net Exceptions...
that's it...