我们有一个旧的遗留 Web 应用程序。该架构包括:
- (经典)为客户浏览器提供服务的 ASP 页面;VB脚本,数以千计
- 由 ASP (IIS) 调用的进程外 DCOM 服务器;MFC、单例、exe
- 数据库; 一种或多种模式
- 调用 DCOM 服务器的补充 ASP.NET 应用程序
服务器的角色是:
- 处理用户登录、注销和许可
- 保留用户会话信息
- 生成 UI
- 保护/授权用户操作
- 在数据库中检索和存储数据
由于服务器的角色众多,ASP(IIS)和DCOM服务器之间的调用接口相当广泛,并且在许多页面中被大量使用。
主要问题在于 IIS 调用 DCOM 服务器,并且随着更新的 Windows 服务器变得更大。从 Windows server 2008 开始,这种组合几乎完全不可维护。使用 UAC,即使是单例进程外 DCOM 服务器也无法工作(不同的进程在不同的安全上下文中启动)。
我想保留服务器的 MFC/C++ 代码并将其作为单例运行(尽管有所有缺点)。那些许多 ASP 页面是应用程序中最动态且始终在变化的部分,我希望它们保持不变。我可能会牺牲补充的 ASP.NET 应用程序。
服务器的单例进程外 DCOM 接口的最佳替代品是什么?我认为性能和未来的维护是最重要的。
(我可以看到一个相同的 .Net 接口作为 COM 替代品,但我主要关心的是在我的第一次迭代中保持它的单进程单例。)