我正在构建一个 Multi-Tenancy ASP .NET 应用程序。鉴于每个租户都可以动态配置他们的应用程序(这可能涉及将动态自定义程序集加载到内存中),我需要一种隔离每个租户的方法。
出于维护原因,我不想为每个租户创建一个新的 Web 应用程序。
我一直在考虑使用 AppDomainManager 为每个应用程序创建一个 AppDomain,但似乎这不适用于 ASP .NET 应用程序。
有没有人对这个问题有一些建议?
谢谢。
最佳答案
我想问题是:如果您不喜欢创建 Web 应用程序,那么您真正可以接受哪种类型的隔离?
如果你真的想要一个操作系统级别的保证,即程序集不会相互践踏,我会给每个人自己的 Web 应用程序。如果您允许人们加载第三方程序集,则尤其如此,如果这些第三方程序集可以找到实例化非托管代码的方法,则尤其如此。
如果它是您的所有(托管)代码,我可以看到不会创建单独的 Web 应用程序,但是一旦您将动态自定义程序集放入组合中,我认为这是唯一的出路。
关于c# - Multi-Tenancy ASP .NET 应用程序中的隔离,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3900718/