问题标签 [com+]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
8924 浏览

windows - “传统” COM 和 COM+ 之间的区别(在组件服务中)

通过“传统”方式,我的意思是在注册表中注册 DLL。

似乎还有另一种设置方法,方法是转到 mmc->Component Services->COM+ Applications 并添加.tlb文件。

我有一个支持这两种方法的 COM 库。安装时,它会在注册表中将自己注册为 COM 组件,并且可以正常工作。但是,当我.tlb使用组件服务方法添加文件时,行为似乎有所不同,并且开始出现错误。

我怀疑它与封送处理和进程间对象传输有关?(对不起,我真的是COM领域的菜鸟)

谁能给我指出一个很好的资源来澄清我的理解?

0 投票
1 回答
1447 浏览

vb6 - 无需访问 HKEY_CLASSES_ROOT 的远程 DLL 注册

我们有一个旧版 VB6 应用程序,它在启动时通过下载最新文件并注册 COM 组件来更新自身。这适用于本地 (regsvr32) ActiveX COM 组件和远程 (clireg32) 在另一台计算机上的 COM+ 中注册的 ActiveX COM 组件。

出于安全原因,新要求阻止我们写入 HKEY_LOCAL_MACHINE (HKLM),这显然是在调用 regsvr32 和 clireg32 时默认发生的情况。

我们想出了一种使用RegOverridePredefKey Windows API 方法在 HKEY_CURRENT_USER\Software\Classes (HKCU) 下注册本地 COM 组件的方法。这通过将插入到注册表中的插入重定向到 HKCU 位置来实现。然后当 COM 组件被实例化时,windows 首先查找 HKCU,然后再查找 HKLM 中的组件信息。这取代了 regsvr32 正在做的事情。

我们此时遇到的问题是,当我们尝试使用clireg32注册VBR/TLB时,这个注册过程也将注册密钥添加到HKEY_LOACL_MACHINE。

有没有办法将 clireg32.exe 重定向到注册组件是 HKEY_CURRENT_USER?是否有任何其他方法可以让我们在安全访问受限的客户端机器上注册这些 COM+ 组件?

我们目前唯一的解决方案是手动将注册信息写入注册表,但这并不理想,而且会成为一个维护问题。

0 投票
1 回答
351 浏览

c# - ServicedComponent 未在终结器中处理

需要回答的问题:

  1. 客户端ServicedComponent的终结器是调用ServicedComponent.DisposeObject还是Dispose?

  2. com 服务器中的破坏(内存释放)应该如何发生在客户端的使用中?

  3. 基本上 - 我们在 COM 服务器的进程大小(内存)上达到了 2 gig 限制,因为内存没有被释放 - 是显式调用 Dispose 还是在客户端使用 using 语句的解决方案?

0 投票
3 回答
1883 浏览

com - 注册 COM 类的最大长度是多少?

当对象被添加到 Windows 注册表时,它们会显示如下:

我似乎记得在尝试为 COM 注册它们时遇到了我的命名空间和类名太长的问题。在 Windows 或 COM+ 中注册类是否有最大长度限制?

0 投票
1 回答
2110 浏览

c# - C# - Retrieve properties of a COM+ component?

I have a COM+ component on a server (Windows Server 2003). Is there any way I can programmatically retrieve the properties of this component, (e.g. the constructor string used)?

When I go to Administritive Tools -> Component Services -> COM+ Applications and right click on my component, these are the properties I want to be able to retrieve and write to a file.

Is there any way I can do this?

Thanks in advance.

0 投票
0 回答
1242 浏览

c# - 进程外运行的 C# ServicedComponent 在一台机器上获取 File Not Found 异常

我编写了一个愚蠢简单的 ServicedComponent(COM+ 组件)来运行进程外并在 x64 服务器上包装一个仅 x86 的 COM 组件。在我的测试虚拟机(Server 2008 R2)上它工作正常。在生产盒上,我得到一个找不到文件的异常。

C:\Windows\Microsoft.NET\Framework\v2.0.50727>C:\Testapp.exe 系统找不到指定的文件。(HRESULT 异常:0x80070002)在 System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) 在 System.EnterpriseServices.Thunk.Proxy.CoCreateObject(Type serverType, Boolean bQuerySCInfo, Boolean& bIsAnotherProcess, String& uri) 在系统。 EnterpriseServices.ServicedComponentProxyAttribute.CreateInstance(Type serverType) at System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(Type serverType, Object[] props, Boolean bNewObj) at Testapp.Program.Main(String[] args) 在 D:\TFS \Testapp\Program.cs:第 11 行

Program.cs 的第 11 行是我实例化我正在包装的 COM 类型的对象的地方。

同样,这在我的 x64 Win 7 开发机器和我的 x64 测试 VM 上运行良好。我正在构建我的组件 x86,并从 32 位命令提示符注册 regsvcs 的 32 位版本。

我到底做错了什么或忘记了什么?

0 投票
1 回答
651 浏览

windows - 我在哪里可以找到有关 Microsoft 计划在未来版本的 Windows 中支持 COM+ 的可靠信息?

在查看具有许多相互竞争的优先级的大型 Web 应用程序时,我面临的一件事是大量的 COM+ 组件。在某些时候,这些东西需要在其他一些技术(WCF、.NET 等)中重新设计。我如何优先考虑这项工作的一部分将是“在微软停止支持它之前很久?”

我很难从微软那里找到任何可靠的官方信息,说明他们目前计划在未来版本的 Windows 中支持 COM+。

任何指导将不胜感激。

0 投票
2 回答
1787 浏览

com+ - 有多少人真正使用 COM+/.NET EnterpriseServices?

我正在学习 COM+ 和 EnterpriseServices。我在 MSDN 上看到了 COM+ 服务的完整列表,并阅读了其中的每一项。

这绝对的音量让我敬畏。从表面上看,它似乎是一个其他开发平台无法比拟的先进系统。池化、同步和远程处理等概念似乎非常有用,并且它们已经标准化了一种实现方式。

另一方面,网络上提到的 COM+/EnterpriseServices 却出奇地少。当我在这里输入标题时,几乎所有相关问题都有 0 个答案(希望这不会成为其中之一)。我有一种感觉,所有这些工具实际上主要由 MS 用于实现 IIS。但他们发布它是为了一些营销宣传。

您有使用这些服务的真实经验吗?它们只是一些过度架构的麻烦,还是您有过让它们变成实时节省者的经验?

0 投票
1 回答
534 浏览

vb6 - 将记录集传递给要填充的组件方法

我有一个奇怪的问题,我试图将三个记录集传递给一个方法,让它们在同一个数据库连接下填充数据。通过在运行下面的代码时查看自定义日志记录信息,我可以看到在将传递给方法的记录集分配给方法中的局部变量时出现类型不匹配错误。

因此,当调用 mthod 时会记录以下内容:

2010 年 7 月 15 日上午 10:59:47 - 开始 GetALLRecordSets 2010 年 7 月 15 日上午 10:59:47 - 开始 GetALLRecordSets RS 初始化

奇怪的是,同样的代码在我们的测试服务器上工作,其中 asp 代码是相同的,组件 dll 是相同的。

关于可能导致此问题的任何想法?


经典的 ASP 代码:

VB6 组件代码:

0 投票
1 回答
1185 浏览

excel - 无需安装excel即可访问服务器中的excel文件

我创建了一个库来向/从 excel 传递/获取数据。

为了在我的机器上执行,我修改了 COM+ 控制台中的访问权限。

问题是我有兴趣将此组件上传到我的在线服务器,但我还没有安装 excel。

有没有什么方法可以在不安装 excel 的情况下在 COM+ 中注册 excel?

提前致谢。

此致。

何塞