19 January 2011

HTTP 502: The Uniform Resource Locator (URL) does not use a recognized protocol

I recently ran into this interesting problem on some TMG infrastructure that I had deployed for a while already.

Two sites are hosted on the same physical server on the same IP.  One on port 80 and the other on port 8080.  These sites are publish through TMG to the internal network by a single NIC server.  There are two rules and two separate listeners.

When a user attempt to connect to the published application on port 8080 they receive this:


When tracking this request from the TMG server I see this error message:

Failed Connection Attempt
Status: 12006 The Uniform Resource Locator (URL) does not use a recognized protocol. Either the protocol is not supported or the request was not typed correctly. Confirm that a valid protocol is in use (for example, HTTP for a Web request).
Source: Internal (10.40.46.14:36448)
Destination: 10.40.20.139:8080
Request: GET http://addresss:8080/favicon.ico
Filter information: Req ID: 205ba366; Compression: client=Yes, server=No, compress rate=0% decompress rate=0%
User: anonymous

The problem is that this TMG server also acts as a proxy server,  The proxy is hosted on port 8080 as it should be.  A conflict therefore exists when a non proxy requests gets made on the same port.  Since proxy cannot be restricted to a single IP it effectively listens on all the NLB IPs.

To resolve this issue you can publish your server application on another port other than 8080 and use bridging to bring the request back to where the server expects it to land.

The correct way to fix it is to publish the server application on another IP and/or host header.  This will then allow you to publish on the standard port 80 without causing a similar conflict.

For more information you can always check out this article on technet  http://technet.microsoft.com/en-us/library/bb794799.aspx

No comments:

Post a Comment