这个问题是关于应用程序域和会话的。是否可以让 IIS 在单独的应用程序域中运行每个用户会话。如果是,请让我在配置文件中设置影响这一点的设置。
问候,阿尼尔。
我不知道可以轻松完成此操作的方法。请进一步解释您的问题,说明为什么需要 AppDomain - 将应用程序集合使用移动到 Session 可能更容易。
更新:不幸的是,您的问题的正确解决方案是为基于服务器的会话解决方案重新构建库。你可以做的,我强烈不推荐这样做,是为每个 Session 创建一个 AppDomain,在 Session 中存储对它的引用,然后依靠诸如CreateInstanceAndUnwrap
魔术字符串和反射之类的调用(没有真正的编译时间检查)来为每个用户加载一个库实例。我想如果你追求这个解决方案,你将花费更多的时间来调试它和处理错误,而不是你预先进行重新架构时间投资。
这在运行 ASP.NET 1.x 或 ASP.NET 2.0(即使安装了 .NET Framework 3.5)的 Windows 2000 或 Windows 2003 下是不可能的。这同样适用于在 IIS7 上运行的 ASP.NET。
一种可能的解决方法(当然不会扩展)是创建一个 Windows 服务来管理新进程的启动和停止,并使用 WCF 从 Web 应用程序与该服务进行通信。