> ## Content Index
> Fetch the complete content index at: https://codeisahighway.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# HTTP 503 error in Azure Worker/Web role when IP Address is not specified in IIS site binding
- URL: https://codeisahighway.com/http-503-error-in-azure-workerweb-role-when-ip-address-is-not-specified-in-iis-site-binding/
- Published: 2015-02-12T22:07:27.000Z
- Updated: 2026-08-10T07:12:14.000Z
- Author: Stephane Lapointe
- Tags: Microsoft Azure, Cloud Services, Load Balancer, #Import 2023-07-11 16:44, #Import 2026-09-04 10:31, #Import 2026-09-04 13:56

## My load balancer probe isn't probing.

Today I tried to define a custom load balancer probe on a worker role in Azure. On this worker role, IIS and other components were installed and configured using PowerShell scripts.

```
<ServiceDefinition …>
   <LoadBalancerProbes>
      <LoadBalancerProbe name="Probe1" protocol="http" path="/probe.aspx" port="18045" intervalInSeconds="30" timeoutInSeconds="30"/> 
   </LoadBalancerProbes>
</ServiceDefinition>

```

After the deployment, I wasn't able to reach the website, why is that? I jumped onto the machine using Remote Desktop and took a look at IIS logs... Empty, nothing, no sign of a probe here...

## What's wrong?

The probe was configured to listen on port 18045 in my service definition file, which is also what I saw in IIS.  
![problematic IIS binding](https://codeisahighway.com/content/images/2015/02/bindings-before.png)  
On the machine itself I tried to make the same call as the load balancer, by IP address.

> [http://10.74.56.22:18045](http://10.74.56.22:18045/?ref=codeisahighway.com) failed with a 503 error.

> [http://localhost:18045](http://localhost:18045/?ref=codeisahighway.com) worked.

Interesting. Something is really messing with this port when all IP addresses are configured in the binding. After several tests I realized that the *Windows Azure Guest Agent* windows service prevented communications on the IP address when the IIS bindings in the following format "\*:18045:". This translate to the following binding in IIS

> {Type}:http, {host name}:, {port}:18145, {IP Address}:\*

## How does it looks now?

We needed to explicitly set an IP address instead of \* like we were doing.

I grabbed the IP addresses by using the following command in PowerShell:

```
Get-NetIPAddress -AddressFamily IPv4 -AddressState Preferred | ? InterfaceAlias -NotLike Loopback*

```

It can return more than an address so I decided to add a binding for each IPv4 address marked as preferred that is not the loopback interface

I ended up with this in IIS:  
![working IIS binding](https://codeisahighway.com/content/images/2015/02/bindings-after.png)

After redeploying, everything started to work as expected with the custom probe.