【问题标题】:Can I deploy multiple instances of WCF service on IIS with same namespace?我可以在具有相同命名空间的 IIS 上部署多个 WCF 服务实例吗?
【发布时间】:2012-09-13 14:17:22
【问题描述】:

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

【问题讨论】:

    标签: wcf iis virtual-directory wcf-routing


    【解决方案1】:

    从技术上讲,服务不负责其托管,即 .svc 文件(或配置中的服务条目)。您应该没有任何问题,因为每个实例都位于不同的端点。人们甚至在同一个虚拟目录中也这样做,在每个端点使用不同的绑定多次托管相同的服务。例如,我的安全服务在端点托管了相同的服务,但安全性不同,具体取决于您是要使用用户名/密码、Windows Auth 还是现有令牌进行身份验证。

    【讨论】:

      【解决方案2】:

      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 文件所在的同一物理位置。

      【讨论】:

      • MVC 路由不是一个选项,因为我们不打算对现有代码进行任何更改。我们的部署将在 IIS 上使用带有虚拟目录的经典服务激活。
      • 验证这工作正常 - 只需确保您的 virtual directories are configured as applications
      猜你喜欢
      • 1970-01-01
      • 2012-01-25
      • 2010-11-15
      • 1970-01-01
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多