每个IIS应用程序部署单个或多个WCF服务?

时间:2013-01-25 18:23:28

标签: wcf iis

我正处于关于IIS托管的内部辩论中。对于给定的企业应用程序,我们有N WCF服务。

一种选择是在自己的IIS应用程序中托管每个WCF服务。这意味着每个服务都有自己的web.config和[可能]自己的应用程序池。

另一个选择是在一个IIS应用程序中管理所有WCF服务。这意味着所有这些服务和一个应用程序池都有一个web.config。

单个选项可以灵活地为每个服务配置不同的配置(IIS和web.config)。单个应用程序池可以更精细地控制重置进程。

共享选项更简单,因为每个服务的IIS和应用程序配置(web.config)应该相同。

我正在寻找这两个选项之间的建议\最佳实践。

1 个答案:

答案 0 :(得分:0)

在与您描述的企业环境相同的企业环境中工作,我们发现最佳实践如下:

  1. 将类似的功能分组到“应用程序”中,然后在一个WCF服务下托管。这给了我们,例如CustomerService,AccountsService等。

  2. 每项服务都有自己的应用程序。域以使其与其他服务分离和安全分离。也就是说,每个服务都在ActiveDiretory(AD)帐户的上下文中运行,这样做可以保护我们安全的下游资源,例如SQL Server数据库。

  3. E.g。 CustomerService在DOMAIN \ CustomerServiceUser用户下运行。然后,我们可以保护与客户功能相关的存储过程,以便它们只能由CustomerServiceUser用户执行。然后,我们可以使用集成安全性来连接到SQL服务器。这允许在Active Directory级别管理企业权限。

    1. 我们使用脚本编写IIS配置和web.config文件。这样做的好处是IIS配置也可以保存在源代码控制中,就像我们的web.config文件的转换文件一样。然后我们有完整的版本历史记录或我们的配置,如果我们决定复制& amp;还可以使用它来快速推出其他机器。负载平衡服务。
    2. 尽管您的组织要求可能不同,但我们认为这是最佳做法。