【发布时间】:2015-08-13 03:26:45
【问题描述】:
我设置了一个 Kentico CMS 来托管多个网站,我想知道在 IIS 中使用相同的代码库设置多个网站是否是一个好习惯?我在 Windows 2012 R2 上使用 IIS 8
【问题讨论】:
-
请在您的问题中或通过添加特定于版本的标签来提及您正在运行的 IIS 版本。
标签: asp.net iis content-management-system iis-8
我设置了一个 Kentico CMS 来托管多个网站,我想知道在 IIS 中使用相同的代码库设置多个网站是否是一个好习惯?我在 Windows 2012 R2 上使用 IIS 8
【问题讨论】:
标签: asp.net iis content-management-system iis-8
切尔,
我认为让多个 IIS 应用程序指向一个代码库并不是一个好主意。作为正常处理的一部分,Kentico 将在您的应用程序文件夹中添加/更新/删除几个文件。由于文件权限和访问权限,让多个 IIS 应用程序在文件系统上的同一文件夹上执行此操作将引入复杂性和错误。
您可以通过多种方式设置解决方案,具体取决于您希望如何管理应用程序。
在这种情况下,您将拥有一个 IIS 应用程序/文件夹。所有站点都将从同一个代码库交付。所有流量都将被重定向到同一个 IP。在您的 IIS 配置中,您将为要发送到站点的每个 URL 使用主机标头。在 Kentico 中,您将拥有每个要服务的站点的许可证/域别名。
优点
此设置将为您提供一个代码库来管理您的应用程序。这可以大大简化您的维护和热修复。
缺点
如果您因任何原因必须重新启动您的任何网站,您的所有网站都会立即关闭。
在此设置中,您将为要交付的每个站点复制代码库。您将为每个代码库创建一个 IIS 应用程序,并为相应的 URL 进行配置。每个域都将被定向到相应的 IIS 应用程序。
优点
可以隔离您的应用程序。可以为每个应用提供使用不同 .NET 框架/配置的能力。
缺点
需要维护几个代码库。所有网站的更新都需要在所有代码库中复制代码。
就个人而言,如果您的所有站点都在同一个 .NET 框架上,并且是否必须重新启动它们并不重要,我会推荐选项 1。如果其中任何一个是关键的 LOB 应用程序,您可以考虑将该应用程序分支到它自己的 IIS 应用程序池/代码库。
【讨论】: