【问题标题】:Is it feasible to point many domains/subdomains to the same web site with the purpose or running multiple sites off one code base?将许多域/子域指向同一个网站是否可行,或者在一个代码库上运行多个站点是否可行?
【发布时间】:2010-11-27 00:21:46
【问题描述】:

仅用一个代码库运行一堆网站是否可能或可行?

例如,我有一个基于域名或子域名的连接字符串的站点。因此,根据访问站点的域/子域,站点返回的内容存储在专门用于该站点的数据库中。

这样做可能会出现哪些类型的问题?特别是如果使用 asp.net。

【问题讨论】:

    标签: asp.net web dns


    【解决方案1】:

    这是可以接受的。

    请注意,任何人都可以更改您可能选择的域名(只要您为其配置了主机标头),因此请确保您不要四处制作类似“admin.foo”的东西但仅依靠它来确保安全(但显然你会生气)。

    我觉得没问题。

    【讨论】:

      【解决方案2】:

      它有效并且被证明。 Se DotNetNuke 只是其中的 1 个示例。

      请求进来。正则表达式/字符匹配域名。加载该域的设置(图像、css、配置、页面等的基本路径),然后就可以了。

      【讨论】:

        【解决方案3】:

        要注意的问题是,如果您的应用程序既 a) 将数据存储在内存中,又 b) 使用相同的应用程序空间。因此,例如,如果您想创建两个不同的博客,并且希望数据驻留在内存中(例如,如果您的后端存储是 XML,并且您不想在每个请求中解析 XML),那么您必须确保 Asp.Net 将每个调用视为一个单独的应用程序(它们都可以指向同一个文件系统文件夹,因此使用相同的文件)。

        我在编写multi-blog data provider for BlogEngine.Net 时遇到了这种情况。它使用单个代码库根据请求的 URL 提供不同的博客。但是,由于 BlogEngine.Net 将其数据保存在内存中,因此除非将 IIS 配置为每个博客都是其自己的应用程序,否则数据提供程序将无法工作。

        【讨论】:

        • 对你所在的“记忆”进行了什么样的调用?每个页面请求都会将自身初始化为对特定站点的请求,并且代码将在该初始化中执行。如果你有代码溢出,你一定是在使用会话/缓存之类的东西,而没有正确地将值键入到与之关联的特定站点/请求。
        • 这不是什么花哨的东西。大多数情况下,基础对象保留静态 List 集合。有一个静态 List 和 static List 等。由于这些是静态变量,它们将一直保留到进程循环为止。这也意味着回收后的第一次调用会带来一点延迟,因为 all 数据是从数据存储中读取的。我不是该设计的忠实拥护者,但它解决了他们在每次调用时进行 XML 序列化的问题。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-04-12
        • 2010-12-16
        • 2011-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-10
        相关资源
        最近更新 更多