多个网站,一个公共代码库和不同的配置文件

问题描述

| 我在IIS中有两个网站
http://domainA.com 
http://domainB.com 
我想对这些网站使用相同的代码,但使用不同的web.config文件。这可能吗?我将数据库连接字符串等存储在web.config文件中,应用程序中的所有其他代码都相同。 我尝试过创建文件夹结构的一些不同方法,例如
-Root
  - Domain A
    - web.config for domain A
    - Code
      - Virtual Directory to Source Code  
  - Domain B
    - web.config for domain B
    - Code 
      - Virtual Directory to Source Code
- Source Code
然后,我将域A的网站指向\“ Root / Domain A \”,将域B的网站指向\“ Root / Domain B \”,但是问题是必须向下访问代码,例如
http://domainA.com/Code/
http://domainB.com/Code/
有任何想法吗?     

解决方法

我的回答将基于您正在编写自定义代码而不是使用现成的解决方案(例如DNN或SharePoint)的假设。 保持通用代码库的一种解决方案是在数据库中而不是web.config中维护网站特定的配置设置。通过使用一组名称/值对,可以使数据库结构保持相当动态。您当然需要在设计应用程序时考虑到这一点,并在数据库中进行规划。这为您提供了只有一个代码库以及一个web.config的优点。如果需要为每个站点在单独的数据库中维护内容,则到这些内容数据库的连接字符串信息可以是配置数据库中的名称/值对之一。 您甚至可以通过在IIS中为所有域创建一个网站来进一步迈出这一步(除非您将使用SSL,否则在这种情况下最好使用单独的IIS站点)。您需要将主机头添加到网站,然后在代码中寻找主机头,以确定要使用的设置和要提供的内容。您将失去创建单独的应用程序池的能力,因此,如果这是适合您情况的选择,则应检查您的要求。 这实际上与DNN和SharePoint的工作原理类似,但是当然也可以在自定义应用程序中完成。