views:

331

answers:

3

We have installed an ASP.NET web site on a client's server. This site has a web service with a couple of web methods that are called by a Flash object in order to display a news feed. If you browse to their site (ex: www.domain.com), everything's working fine except the flash.

The issue is that when we browse to the .asmx, the header shows that the Host is a subdomain internal to their network (internal.domain.com). Obviously this doesn't resolve to any public IP when browsing from outside of their network. This causes the Flash to fail since the flash object is embedded on a page and is therefore running client side.

I checked the computer name on the server in question, and it doesn't even match "internal.domain.com" - it is something completely different. Where is it getting this information from. It is not coming from IIS, since we have no host headers set up, and the IP for the site is set to (all unassigned).

We either need to force the web service to run against a specific host, or we need to change something on the server so that it resolves to a valid public-facing host name. Any and all help is greatly appreciated!!!!

A: 

While you probably did this already, it's always a good first step:

Do a global Find in the source code of both the Flash object and the web service for the string in question.

It sounds like someone may have configured/coded the internal.domain.com string into the Flash object's request. (Host: is a HTTP Request header, not Response header, IIRC.)

Jeff Meatball Yang
Thanks for the answer, however it is not a problem with the flash, but with the web service itself. If you browse directly to the .asmx file in a browser, and click on either of the webmethods, then examine the SOAP header, you see "Host: internal.domain.com".And I did do a search for internal.domain.com within the entire solution (and knew that no results would be returned since we obviously never even knew internal.domain.com existed). This host name has to be coming from the machine itself, but where?
Keith
A: 

Does the Flash object get the web service URL from the C# code? If so, it might be getting the default web service URL that you choose when adding a Web Reference to your project in VS. Therefore it might be pointing to a URL locally to the developer's machine/server which is not recognized on the live server.

tomlog
Again, this was developed on our dev boxes, and our dev boxes have no idea what internal.domain.com is, so there would never be a chance that this was defaulted. Somehow the host name on our client's server is resolving as internal.domain.com instead of www.domain.com. I checked through IIS and in the computer name field (my computer -> properties -> computer name), and nowhere is internal.domain.com mentioned/referenced.
Keith
+1  A: 

The solution is to add a host header for www.domain.com

More details here

Doanair