Nhibernate、WindsorContainer、ASP.NET和多租户

Nhibernate、WindsorContainer、ASP.NET和多租户,asp.net,nhibernate,fluent-nhibernate,castle-windsor,Asp.net,Nhibernate,Fluent Nhibernate,Castle Windsor,我们正在尝试在asp.net(Web表单)应用程序中实现多租户。我们为每个租户提供单独的数据库。我们有一个主数据库,它存储租户数据库的配置字符串。 我们使用Application_start(Global.asax)遍历所有连接字符串,并为每个租户注入所有会话(别名)。一切正常 我们想引入这样的功能,我们只需在主数据库中创建新的租户数据库和连接字符串,应用程序应该能够在不重新启动网站的情况下为新租户提供服务(IIS重新启动) 我可以得到一些提示吗?我如何在不重新启动网站的情况下实现它 谢谢 Sh

我们正在尝试在asp.net(Web表单)应用程序中实现多租户。我们为每个租户提供单独的数据库。我们有一个主数据库,它存储租户数据库的配置字符串。 我们使用Application_start(Global.asax)遍历所有连接字符串,并为每个租户注入所有会话(别名)。一切正常

我们想引入这样的功能,我们只需在主数据库中创建新的租户数据库和连接字符串,应用程序应该能够在不重新启动网站的情况下为新租户提供服务(IIS重新启动)

我可以得到一些提示吗?我如何在不重新启动网站的情况下实现它

谢谢


Shishir Kumar Mishra

虽然这个实现是关于使用嵌入式数据库进行测试的,但它应该足以让您有一个想法


每个连接字符串对应于其配置和会话工厂,因此,如果您打算为每个租户创建一个特定的数据库,则需要根据要求启用应用程序来初始化所述租户的配置和会话工厂。Kalki您是对的,这就是我们一直在做的。在我的例子中,目的是动态创建租户的数据库,我们不想重新启动应用程序。我们希望实现这样的效果:如果您的应用程序基础结构支持基于租户的会话工厂/会话生成,您不必重新启动应用程序,只需简单地说每个租户都有自己的唯一id,您使用此密钥获取/初始化相应的会话工厂,然后打开会话。Kalki,我们已经有了这个系统。让我这样说吧。现在我们知道所有租户,所以我们可以在应用程序启动中完成所有这些。但假设6个月后,需要集成一些新租户,我们必须为其创建数据库和连接字符串,并将其保存在主数据库中。此时,我们不想重新启动应用程序。你知道任何链接或样本来源,可以指导我实现这一点?