首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DCOM单胎置换

DCOM单胎置换
EN

Stack Overflow用户
提问于 2013-03-23 00:08:06
回答 1查看 426关注 0票数 0

我们有一个旧的遗留web应用程序。该架构包括:

  1. (经典)为客户端浏览器服务的ASP页面;VB脚本,数以千计
  2. ASP (IIS)调用的进程外DCOM服务器;MFC、singleton、exe
  3. 数据库;一个或多个模式
  4. 调用DCOM服务器的补充ASP.NET应用程序

服务器的角色是:

  • 处理用户登录、注销和许可
  • 保存用户会话信息
  • 生成UI
  • 保护/授权用户操作
  • 在数据库中检索和存储数据

由于服务器的许多角色,ASP (IIS)和DCOM服务器之间的调用接口相当广泛,并且在这许多页面中大量使用。

主要的问题在于IIS调用DCOM服务器,并且随着新的Windows服务器的出现而变得更大。从Windows server 2008开始,这种组合几乎是不可维护的。在UAC就位后,即使是单例进程外DCOM服务器也无法工作(不同的进程在不同的安全上下文中启动)。

我希望将服务器的MFC/C++代码保持为单例运行(尽管存在所有缺点)。这许多ASP页面是应用程序中最动态、最经常更改的部分,我希望它们保持不变。我可能会牺牲补充的ASP.NET应用程序。

,什么是最好的替代服务器的单例进程外DCOM接口?,我认为性能和未来的维护是最重要的。

(我可以看到一个完全相同的.Net接口作为COM替换,但我主要关心的是在我的第一次迭代中保持它是单进程的。)

EN

回答 1

Stack Overflow用户

发布于 2013-03-23 01:57:02

这个问题有点开放,所以.但是很久以前,我使用了下面的技术,做了一个Java到-COM桥。嗯..。

我知道代码可以工作,因为您愿意保留其中的大部分代码。您在缩放单例模式时有问题。

所以把你的独生子女分成两部分。

首先,将您的单例作为服务运行(或在COM+中)。在该进程中添加一个小空间(运行在它自己的线程上),它接收HTTP请求并将它们转换为进程内COM调用。由于您已经在进行进程外的工作,因此编组应不会成为一个问题。请看一下HTTP部件的猫鼬。它是一个单一的C文件,它将使您在短时间内得到概念运行的证明。

其次,编写(从头开始)一个普通的、非单例的进程内COM对象,实现与服务器相同的接口。这个存根只会将它接收到的COM调用转换为对HTTP的调用,再转换为真正的单例。

+确保你的垫片不听公共接口!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15581755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档