1

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!!!!

John Saunders
  • 160,644
  • 26
  • 247
  • 397
Keith
  • 5,311
  • 3
  • 34
  • 50
  • Is this a WCF svc file or a plain asmx service? – Jose Basilio May 29 '09 at 21:43
  • I'm actually not entirely sure, as I am not the person who added the web service into the project initially. What would the difference be? All I know is that there is a .asmx file sitting in a WebServices folder in the root of the site, and the codebehind (.cs) file is sitting in the App_Code directory. That's pretty much all there is to it. – Keith May 30 '09 at 04:56
  • We found out our client was using a reverse proxy for their web/network traffic, so the host header that was coming through was not matching the actual url/hostname. They were not able to resolve it so we had to strip out the portion of the flash that was calling the web service. – Keith Aug 04 '09 at 15:01

3 Answers3

1

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

More details here

Doanair
  • 538
  • 4
  • 13
0

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
  • 37,839
  • 27
  • 91
  • 125
  • 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 May 29 '09 at 22:32
0

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.

Tom van Enckevort
  • 4,170
  • 1
  • 25
  • 40
  • 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 May 30 '09 at 04:52