6

由于动态程序集加载需要加载应用程序域以启用通过卸载相关应用程序域来终止程序集,因此要加载的进程中是否存在“最大”数量的应用程序域?我正在考虑一个基于服务器的应用程序,每个用户都可以动态运行他的专有 C# 代码。但是,假设有 2000 个用户登录并加载他们的代码怎么办?除了appdomians的数量之外,我可能会遇到任何限制吗?

谢谢。

4

3 回答 3

7

几乎所有 CLR 限制都基于“内存允许”。我知道的唯一例外是类的成员数,限制为 65536。这是基于令牌值的定义。AppDomains 没有这样的东西。

于 2010-11-09T17:58:38.583 回答
5

我不相信 CLR 中内置了明确的最大值。相反,剩余的内存量将决定您是否可以动态加载新的应用程序域。

我会做一些研究,但我认为没有为此设定值。

编辑:

这是另一篇文章,可能有助于解决问题。

于 2010-11-09T16:18:22.327 回答
1

大多数情况下,它将由您的操作系统限制定义。你的 x86 机器不能为一个进程使用超过 4GB 的内存[在用户模式下只有 2GB]。如果你选择 x64,你会有更大的限制。据我所知,您可以创建的应用程序域的数量没有这样的限制。

于 2010-11-09T16:20:41.937 回答