Troubleshooting Connectivity Issues in the Azure AppFabric Service Bus

If you are experiencing connectivity errors when using the Windows Azure AppFabric Service Bus, please use the following troubleshooting procedures:

Prerequisites

1. Ensure that you are using the latest AppFabric SDK (http://go.microsoft.com/fwlink/?LinkID=129448) with the latest version of Microsoft.ServiceBus.dll.

2.  Make sure that the service itself is not experiencing outages or degradation by visiting the status dashboard at http://www.microsoft.com/windowsazure/support/status/servicedashboard.aspx

Connectivity

1. Launch a browser from the computer that is running the listener or client and navigate to http://<service_namespace>.servicebus.windows.net and http://watchdog.servicebus.windows.net. You should see the following atom feed in your browser.

If you see the above in your browser, you have connectivity to your service namespace/VIP over port 80.
2. If the above does not work, try the following command

Ping <namespace>.servicebus.windows.net and watchdog.servicebus.windows.net.

For example:

C:\ping test-sn.servicebus.windows.net

Pinging test-sn.servicebus.windows.net [70.37.103.187] with

32 bytes of data:

Request timed out.

Request timed out.

Reply from 10.80.196.1: Destination host unreachable.

Reply from 10.80.196.1: Destination host unreachable.

Ping statistics for 70.37.103.187:

    Packets: Sent = 4, Received = 2, Lost = 2 (50% loss),

 

If the ping does not work, that is fine -- as long as it resolves to an IP address. If it does not resolve to an IP address, then you are experiencing DNS issues.

a.  If you are in a networking environment where ISA Firewall Server or Forefront Threat Management Gateway is installed, then you must install the corresponding client software on the computer.

b.  If the above does not work, you will need to contact your network administrator.

3. If you are able to connect to the Service Bus URL using the browser, ensure that the ports required by the Service Bus (see the table below) are open. You can do this by using the telnet command in the command prompt with the IP and port from the machine running the listener or the client. The IP address to use is the one returned from the ping command above. For example:

Telnet 70.37.103.187 9351

The command prompt going blank indicates the telnet command was successful and the port is open.

Note: Telnet may not be part of your default installation; you may need to enable it from Add/Remove Windows Components.

 

 Binding  Connectivity Mode Port 
 NetTCPRelayBinding  TCP  9350,9351,9352
 NetTCPRelayBinding  HTTP  80
 WSHttp2007RelayBinding  TCP  80,443,9351
 WSHttp2007RelayBinding  HTTP  80,443
 NetOnewayRelayBinding  TCP  80,443,9350,9351,9352
 NetOnewayRelayBinding  HTTP  80

 

4. If you have problems with the above steps, try the following checklist:

a. If your network is locked down, work with your network administrator to ensure  that TCP ports 9350-9355 and/or http ports 80/443 ports are open for outbound traffic for address ranges specified at Azure AppFabric Annoucements blog: http://blogs.msdn.com/b/windowsazureappfabricannounce/archive/2010/01/28/additional-data-centers-for-windows-azure-platform-appfabric.aspx.

Note: Regardless of which datacenter your namespace is hosted on, you have to have you will have to open up above ports for the United States (South/Central) address range open if you set "ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Auto" (which is the default). The Microsoft.ServiceBus.dll assembly has code which connects to the United States (South/Central) datacenter.

b. If you are using the ISA Server (ISA) or Forefront Threat Management Gateway (TMG), make sure that the associated client software (ISA Server Firewall Client / TMG Client Agent) is running on the computer. Having the client software simplifies routing to the network, especially when using TCP bindings.

Note: Stopping and restarting the services associated with the client software has helped with connectivity issues in certain instances. The services corresponding to ISA and TMG are Firewall Client Agent and  TMG Client Agent.

c. Ensure that the application is running under a domain joined account. Some proxies are configured to authenticate all egress traffic against domain-joined accounts.

Non domain accounts may also be unable to resolve addresses to their corresponding IP.

For example, for a proxy requiring authentication and explicitly specifying a proxy:

<system.net>

  <defaultProxy useDefaultCredentials="true">

     <proxy bypassonlocal="True" proxyaddress="http://your_proxy_server:80" />

  </defaultProxy>

</system.net>

For a proxy requiring authentication and using default proxy (as specified in Internet Explorer Internet Options):

<system.net> 

    <defaultProxy useDefaultCredentials="true">  

      <proxy bypassonlocal="True" usesystemdefault="True"/>  

    </defaultProxy> 

</system.net> 

In code, you can accomplish this as follows:

WebProxy proxy = new WebProxy(httpWebProxyAddress, true);

proxy.UseDefautlCredentials = true;

HttpWebRequest.DefaultWebProxy = proxy;

d. Ensure that proxies support HTTP 1.1 and provide support HTTP chunking for requests and responses. HTTP chunking support is required when using  HTTP connectivit.

mode (ServiceBusEnvironment.SystemConnectivity.Mode =ConnectivityMode.Http) explicitly or implicitly (ServiceBusEnvironment.SystemConnectivity.Mode=ConnectivityMode.AutoDetect). ISA Server 2004 Enterprise Edition , ISA Server 2006 Standard and Enterprise Edition  and newer support request/response chunking.

e. If you have components like the TrendMicro AV proxy please try connecting with the component disabled.

f. If you are seeing the Timeout exceptions on the initial connection please the try increasing the openTimeout value on the binding from the usual default of 1 minute to say 10 minutes. For example.

<bindings>
 
      <netTcpRelayBinding>
 
        <!-- Default Binding Configuration-->
 
        <binding name="default" openTimeout="00:10:00">

 

5. If you are still unable to register a service bus endpoint, please obtain a Netmon trace on the client and listener sides, and contact support:  http://www.microsoft.com/windowsazure/support.