WCF Services in a Shared Hosting Environment
I’m currently using a relatively well known hosting service for my Silverlight 2 application. The problem that I’ve had in getting the app up and running is that in a shared hosting environment, I have no control over host headers and most of the other settings in IIS. So since my url is https://www.singletrax.com, the ops people also added https://singletrax.com to the host headers for my site.
The problem is the order in which they added them. The www address is the second in the list so when I try to link to my services, I get an exception: Exception has been thrown by the target of an invocation. This is because the service is trying to load the host header index of 0 and there ain’t nuthin’ you can do about it that I’ve been able to find!
First, add an AppSetting to your web project:
<add key="HostIndex" value="1" />
Next, create two new objects:
class CustomHostFactory : ServiceHostFactory
protected override ServiceHost
CreateServiceHost(Type serviceType, Uri baseAddresses)
int hostIndex =
CustomHost customServiceHost =
new CustomHost(serviceType, baseAddresses[hostIndex]);
class CustomHost : ServiceHost
public CustomHost(Type serviceType,
params Uri baseAddresses) : base(serviceType, baseAddresses)
protected override void ApplyConfiguration()
Then, in your .svc file, reference the custom host this way:
<%@ ServiceHost Language="C#" Debug="true"
This works well for me. I’d be interested in what other hosting services do. Incidentally, I made the index an app setting because I hope that as traffic increases I’ll be able to afford a dedicated or virtual hosting environment.