You may want to try to configure network tracing to see what is going on:
How to configure network tracing[
^]
If you remove the sharedListeners section, the output will go directly to the output window. You add the above configuration in the App.Config file.
Also, there is more information in the WebException about why the timeout happened, try breaking inside the catch and view the exception details in the debugger.