我可以在具有相同名称空间的IIS上部署多个WCF服务实例吗?

时间:2012-09-13 14:17:22

标签: wcf iis virtual-directory wcf-routing

我需要在IIS上使用相同站点的多个虚拟目录上部署相同的WCF服务。如果我为所有这些实例设置了相同的命名空间,这会导致问题吗?

2 个答案:

答案 0 :(得分:2)

从技术上讲,服务不对其托管负责,即.svc文件(或配置中的服务条目)。没有理由你会遇到任何问题,因为每个实例都在不同的端点。人们甚至在同一个虚拟目录中执行此操作,在每个端点使用不同的绑定多次托管相同的服务。例如,我的安全服务具有在端点处托管不同安全性的相同服务,具体取决于您是要使用用户名/密码,Windows身份验证还是现有令牌进行身份验证。

答案 1 :(得分:1)

BizTalk 中 - 重复的命名空间很重要,但是 IIS虚拟目录作为边界应该没有问题。

您可以通过MVC service routing使用多个端点注册服务,并避免完全创建虚拟目录。

ServiceHostFactory serviceHost = new ServiceHostFactory();
RouteTable.Routes.Add(new ServiceRoute("SoapService", serviceHost, typeof(SoapService)));
RouteTable.Routes.Add(new ServiceRoute("directory1/SoapService", serviceHost, typeof(SoapService)));
RouteTable.Routes.Add(new ServiceRoute("directory2/SoapService", serviceHost, typeof(SoapService)));

如果您对物理SVC文件使用经典服务激活,则应该能够将每个虚拟目录指向存在SVC文件的同一物理位置。