我们有一个 CMS 应用程序,目前托管在域下,我们的每个客户都有一个子域来指向他们的软件版本。所有这些都作为 1 个网站托管在 IIS 中,代码会检查 URL 并确定应显示哪些项目。
我正在更新软件以使用 asp.net MVC web api 和 angularJS。我想单独托管每个站点,这样我们就可以为每个客户创建一个 .config 文件,我们可以在其中设置不同的登录方法(facebook、twitter 或客户自定义的登录方法),而且公司也可以拥有自己的 url/域。
我的想法是否正确?为了做到这一点,我需要在单独的文件夹中保存该网站的多个副本,并且每个文件夹在 IIS 中都设置为不同的网站?
这会使更新软件有点麻烦,有没有办法将网站代码放在一个地方,并为每个客户端提供单独的配置文件?
我不是“服务器”人员,但我知道如何建立和运行网站,因此如果有人可以给我提供一些有关配置网站的示例,那就太好了。
提前致谢
答案1
我会避免使用指向同一物理文件夹的多个站点/虚拟目录。特别是如果您计划添加更多客户端/站点,部署/配置更改将关闭所有站点,具体取决于您何时/如何更新。
拥有独立网站的优势在于,您可以一次部署一个网站,例如,测试新功能而不影响其他网站。只要您自动部署相同的代码,更新所有内容就不成问题,最终只需复制文件即可。如果您正在使用功能分支,则通过此设置还可以部署这些分支;如果没有,当您有许多客户想要不同的功能,而又不想成为第一个获得新更改的人时,您会想要这样做。我已通过这种方式管理了 500 多个运行相同代码库的网站,所有网站都有自己的配置/母版页/模板/等等。
或者,如果您仍想保留 1 个站点,只需将“每个客户端”配置存储在数据库中,这样您就不必为每个站点设置不同的配置文件。