【问题标题】:ASP.NET multi-Tenant ApplicationASP.NET 多租户应用程序
【发布时间】:2011-05-05 06:26:09
【问题描述】:

我有一个 Asp.net 应用程序 3.5。我希望能够允许多个/不同的客户端访问同一个应用程序,但使用不同的 URL。我已经设法配置数据库以允许这样做。 所以这里是主要部分。 我想在域中托管我的应用程序...

www.myapplication.com

然后允许不同的客户端使用访问同一个应用程序

1) www.clientOne.myapplication.com
2) www.clientTwo.myapplication.com

  • 还有客户端子域,即(clientone.myapplication.com 和 clienttwo.myapplication.com) 应由客户在注册时自动创建。

我怎样才能做到这一点..您的帮助将不胜感激

我希望我的应用程序如何工作的一个很好的例子是 www.quickschools.com

【问题讨论】:

    标签: asp.net multi-tenant


    【解决方案1】:

    我终于找到了我想要的解决方案,所以我想与你分享我的发现。事实证明,我需要从另一个正在运行的 Asp.net Web 应用程序创建一个 Web 应用程序(来自 C# 代码)

    如果您需要开始此操作,此tutorial by Robbe Morris 真的很有帮助。

    您可能想查看的另一篇文章是this one

    【讨论】:

      【解决方案2】:

      要让不同的 url 使用同一个应用程序,我会使用“301 重定向”子域。我不太确定如何让 webapp 创建这些子域。

      【讨论】:

      • 这将如何工作。请记住,客户仍应使用他的首选子域(始终)
      • 那行不通。用户将被重定向到另一个(子)域。
      【解决方案3】:

      我认为这样做的方法是使该网站成为服务器上的默认网站,即配置使对服务器 IP 的所有请求都命中该网站(除非标头与另一个明确查找它的网站匹配)。您只需在 IIS 设置中不指定标头(仅 IP 地址和端口号)即可执行此操作 - 您只能针对服务器上每个 IP 地址/端口组合的一个站点执行此操作。

      然后查看网站中的请求url,确定请求的是哪个域。

      这样就无需“创建”子域...但您确实需要拒绝对您不想识别的域的所有请求。

      如果您不能这样做,那么您将需要从应用程序调整 IIS 元数据库 - 并非不可能 - 但这是一个非常危险且可能是个坏主意。

      【讨论】:

        【解决方案4】:

        通常情况下,您必须在帐户配置期间为每个新租户配置一个新的虚拟站点。请参阅Creating a New Virtual Server,了解如何以编程方式实现这一目标。虽然有些人认为(有令人信服的论点......)为每个租户创建一个 appdomain 是一种资源浪费,应该在应用程序中使用路由来检查 HOST 标头,请参阅Multi-tenant ASP.NET MVC – Introduction

        配置 IIS/ASP 以响应您的租户子域是很容易的部分。真正的问题是为您的租户配置 DNS,这取决于您的 DNS 解决方案。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-02-10
          • 1970-01-01
          • 2011-08-31
          • 2017-12-01
          • 2018-08-29
          • 2015-08-17
          相关资源
          最近更新 更多