我需要在IIS上使用相同站点的多个虚拟目录上部署相同的WCF服务。如果我为所有这些实例设置了相同的命名空间,这会导致问题吗?
答案 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文件的同一物理位置。