我需要多个站点都指向一个常见的应用程序,因主机头而异。
虽然每个站点的代码/内容都是相同的,但每个站点都需要一个唯一的配置,例如连接字符串。
设置它的最佳方法是什么?
(该网站实际上是一个Silverlight / WCF应用程序,虽然我认为这不重要。)
答案 0 :(得分:1)
使用msi安装包并允许在安装向导中设置所有这些值或使用.NET 4.0中引入的新web.config transformation syntax(每个主机头都有单独的配置和构建目标)。
编辑 - 我首先不明白你的问题:
您必须多次安装该应用程序。您不能拥有多个不同配置的单个站点。但是您不必多次复制库 - 您可以使用链接(mklink.exe)。这意味着您将拥有一个中心目录,其中包含bin目录等共享内容,并且每个站点都有单独的目录。每个站点的目录都将包含自己的web.config和一些放置到站点根目录的内容+指向中央目录的链接。您将为IIS中的每个站点创建单独的应用程序,并将单个主机头映射到每个应用程序。
其他可能性是在您的代码中处理此问题并将所有内容都放在单个web.config中,但IMO是非常糟糕且危险的解决方案。