We run a web application with many (50+) WCF service hosts (Written in C#, running on Win 2008R2/IIS 7.5) for integration with different external vendors. We would like to add another service to each of these hosts for administration. This service can be generic enough that we have a single service definition which we define in some library which we can reference from the integration projects. But is there a way of actually adding the endpoint only in configuration? That is, I would like to avoid adding a .svc file, and only add some rows in the web.config service-section.
I tried adding this to the web.config:
<service name="Contracts.AdminService">
<endpoint address="AdminService" contract="Contracts.IAdminService" binding="basicHttpBinding" />
</service>
This does not work however. If I add a simple .svc file like below it works
<%@ ServiceHost Language="C#" Debug="true" Service="Contracts.AdminService" CodeBehind="Contracts.AdminService.cs" %>
However, I would really like to avoid this so that it is less likely that a mistake is made when setting up a new host (we already do a bunch of automatic stuff with the config file, so adding a new service would be trivial). Is this possible? Any drawbacks?
Found the answer myself after a while. The solution is WCF 4’s file-less activation. This let me just add this to my
web.config:After this I can access the service by going to
http://<hostname>/<path>/AdminService.svc.