WMP unable to connect to WMS 2008; WMS returning 503 Service Unavailable

I've talked to a number of people that are having problems streaming from Windows Media Services 2008 on Windows Server 2008 when the server is behind a NAT firewall, some proxies, or load balancers. Clients on the internal network work just fine. In a network trace you'll see at WMS is returning a 503 Service Unavailable as the first response to the RTSP DESCRIBE or HTTP GET.

WMS is doing a DNS query for the domain name in the RTSP or HTTP request when the request is not the local NetBIOS, local DNS, or local IP. If a WMP client is requesting content through a NAT or similar device (such as some proxies and load balancers that hides or translate an external URL to an internal URL), the requested address might be something like mms://streaming.contoso.com/live. However internally the server name might be WMS01 or WMS01.corp.contoso.com. This generally is only going to happen if you're using Network Address Translation.

WMS 9.5 now contains a cache/proxy in the box. What's happening is when WMS doesn't recognize the requested URL as itself it is assuming that the request may be a proxy request. This happens even if the cache/proxy plug-in is disabled. Because internal clients would use the internal IP, NetBIOS, or DNS name, the server recognizes those request as intended for the local server itself.

You can work around this problem by adding any possible DNS name that could be requested by a client to the WMS server's c:\windows\system32\drivers\etc\HOSTS file and point it to localhost. It would be something like:

127.0.0.1 streaming.contoso.com

We're investigating a way to fix this issue more permanently.