Monday, November 23, 2009

Change HostName for a WCF service in IIS 7

If you have create a simple WCF service “HelloWorld.svc”  and you load it up inside your Visual Studio,  you get a result like this if metadata publishing is enabled.

21180971nu8

The host name “mycomputer.private.mydomain.com” is automatically picked up by WCF.   Of course if this service is hosted on a public server, you don’t want to expose the server name to the consumers of your service. In the real production environment, you would want to use a public host name or even an IP address in the address.

Therefore open up the IIS manager, select the website of your choice and click on the Bindings link in the Actions part.

iis7-install-4

In the window that shows up add the hostname you want to use(for example www.microsoft.com). The first time I did this I got following exception:

This collection already contains an address with scheme http.  There can be at most one address per scheme in this collection.
Parameter name: item

This error was caused by the fact that I now had 2 addresses pointing to the same scheme. Therefore instead of adding a second hostname, change the hostname on the existing http scheme.  This should do the trick…

1 comment:

Anonymous said...

if it were so simple. There is more to it than that. As this does not work.

see this: http://gavinmckay.wordpress.com/2009/03/24/howto-fix-wcf-host-name-on-iis/