问题标签 [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 回答
3945 浏览

.net - 如何以编程方式在 COM+ 应用程序中检查“允许 IIS 固有属性”?

组件服务 -> 计算机 -> 我的电脑 -> COM+ 应用程序

打开一个 COM+ 应用程序对象。

打开组件。

右键单击一个类并选择属性。

在“高级”下有一个“允许 IIS 固有属性”复选框。

如何以编程方式选中此复选框?

我可以通过编程方式创建和删除 COM+ 应用程序,但 ComApplication 类似乎无法更改创建的应用程序中的设置。

0 投票
2 回答
5725 浏览

vb.net - 注册 COM+ 应用程序代理时出错

我已经导出了一个 COM+ 应用程序代理,它可以生成 MSI 和 CAB 文件,并且我已经成功地将它们安装在几个不同的 Win XP 和 Vista 机器上。但是,我有一个不能很好玩的 WinXP 机器。当我尝试运行 MSI 时,它给了我以下错误消息:

“注册 COM+ 应用程序时出错。”

它停在那里,甚至没有达到在 COM+ 中创建应用程序的程度。关于在哪里看的任何想法?我猜某些依赖项是 MIA、禁用或配置错误,但我似乎无法弄清楚魔术酱中缺少什么。

此外,如果你们中的任何人有手动注册客户端应用程序代理的经验,那也会很好。

和平|露水

0 投票
1 回答
3126 浏览

.net - 如何使用 MSI (WiX) 将 .NET DLL 安装到 COM+ 应用程序中

更新:看起来这确实是一个 WiX 限制 -无法添加 64 位 com+ 组件 (3.0.3907.0)

我有一个使用 WiX 2.0 创建的带有 MSI 安装程序的 .NET 应用程序。安装程序创建一个 COM+ 应用程序(除其他外)并将一个 .NET 程序集作为组件安装到该应用程序中。此 DLL 是纯托管的,但它调用可能是 32 位或 64 位的混合 DLL。在 32 位平台上一切正常。然而,在 64 位上,COM+ dllhost.exe 进程作为 32 位运行,随后无法加载本机 DLL。当我查看注册表时,我可以看到 COM+ 组件 DLL 已在 Wow6432Node 键下注册,我认为这就是 dllhost 以 32 位运行的原因。

如果我使用组件服务管理单元来删除和重新添加 DLL,它会在“真实”注册表中正确注册,并且 dllhost 以 64 位启动。我如何让安装程序做同样的事情,即。将其正确注册为 64 位 DLL?我已经将 Package Platform 属性设置为“x64”,并为每个组件设置了 Win64="yes" 属性,但这些似乎没有帮助。

COM+ 组件的 WiX 源代码如下所示:

0 投票
5 回答
3209 浏览

.net - Is COM+ still recommended?

I used to write ASP.Net apps deploying business dataaccess layers in COM+ components several years ago. This was the standard in several corporate infrastructure here in my country. Is this still recommended? What is the alternative?

0 投票
2 回答
180 浏览

.net - 您会在新的企业开发中使用 EnterpriseServices 吗?

您可能已经知道,托管代码(.NET 应用程序)可以通过EnterpriseServices使用 COM+ ,从而使分布式事务资源池同步等问题“更易于编程”,因为这些解决方案是作为应用程序的支持基础设施由 COM+ 提供的.

如果您的应用程序服务器驻留在 Windows 域中,COM+ “通过提供线程池、对象池和即时对象激活自动使您的应用程序更具可扩展性。COM+ 还通过提供事务支持来帮助保护数据的完整性,甚至如果事务跨越网络上的多个数据库” (MS 源)

因此,假设您必须在一家尚未编写可重用的 COM+ 组件的公司中从头开始构建一个大型应用程序,因此您不必依赖于该技术。

这将是一个大系统,但你知道随着时间的推移它会变得更大。假设它类似于一个大型 ERP,分布式事务一直在进行。最后,假设系统核心将驻留在 Microsoft Windows 域中……通过 System.EnterpriseServices (ES) 采用 COM+ 成为一种选择。您必须将一些组件提供给第三方,您可以通过 WCF 来实现。

那么,知道这项技术是可用的并且您的环境是兼容的,您会使用它吗?

如果答案是否定的,COM+ 提供的所有服务,如分布式事务,在完全托管的环境中是否可用且易于使用?

0 投票
2 回答
252 浏览

c# - 来自 Visual Studio 的 Gac 多个项目

我们目前在 Visual Studio 中将“gacutil /i $(TargetPath)”作为外部工具,它适用于 gac'n 单个项目。

我希望能够选择多个项目并对它们进行 gac,因此我将一个批处理脚本放在一起进行测试。

当我从命令行对其进行测试时,它看起来应该可以工作。然后,当我将它连接为“MultiGac.bat $(TargetPath)”并选择多个项目并尝试它不起作用时。

有没有人编写过任何工具来完成,例如使用插件或外部工具进行品尝?也使用 regsvcs 怎么样?

谢谢

0 投票
1 回答
957 浏览

com - 如何访问 .Net 中 COM+ 服务器中托管的 .Net COM 对象?

这个问题是 Marc Gravell 对我的问题Create Out-Of-Process COM in C#/.Net的回答的后续问题?. 我选择了他提出的解决方案,但现在正在处理不同的问题。

这是我的情况:

  • 我在 C# 中实现了一个“DataProvider”COM 组件
  • 该组件托管在 COM+ Server 应用程序中,因此多个进程可以访问 DataProvider 的同一个实例
  • 可以通过 COM 访问数据提供者的进程类型有 Matlab、VB 脚本和 .Net 应用程序。

当从 Matlab 或 VB 脚本实例化 COM DataProvider 时,COM+ 机制启动,我可以验证是否可以使用 DataProvider 的单个实例。

当我尝试从 .Net 访问 COM+ 托管实例时,问题就出现了。基本上,当 COM 组件基于 .Net DLL 时,即使延迟加载,.Net 似乎总是会找到 DLL 并从那里实例化对象,从而跳过整个 COM 机制。这是预期的表演,但对我来说没有帮助。

现在的问题是:是否可以使用 COM 机制在 .Net 应用程序中实例化 .Net 编写的 COM 组件?

请注意,以下代码不使用 COM 机制:

0 投票
1 回答
3334 浏览

.net - 从 C# 客户端调用远程 COM+ ServicedComponent

我在 COM+ 服务器应用程序中安装了一个服务组件。我想从远程客户端创建一个实例。客户端需要能够动态指定服务器机器的名称。我该怎么做呢?

我尝试使用激活器:

但我明白了:

System.Runtime.Remoting.RemotingException:无法创建通道接收器以连接到 URL“服务器”。可能尚未注册适当的频道。在 System.Runtime.Remoting.RemotingServices.Unmarshal(类型 classToProxy,字符串 url,对象数据)

我需要注册频道吗?如果是这样,怎么做?

另一个想法是使用 Marshall.BindToMoniker,但是如何为服务器 x 上的 COM+ 上托管的远程对象指定一个名字对象?

0 投票
5 回答
4560 浏览

java - 如何使用免费方法从 Java 执行 COM+ 库

我有一个用 VB6 开发的 COM+ 组件。

将它注册到组件服务管理器 COM+ 应用程序后,我可以像这样从 ASP 使用它

这就是我所需要的,组件只接收一个(可能是巨大的)字符串并返回另一个(也可能是巨大的)字符串......

有什么方法可以从 Java 访问这个相同的组件吗?

到目前为止,我发现的是J-Integra,但它是一种商业产品。

我也在codeguru.com 上找到了这个线程,但我的 C++.NET 知识相当贫乏,此外我宁愿找到一个免费的纯 Java 解决方案。

0 投票
1 回答
510 浏览

.net - 我可以在 COM+ 中托管 WCF 服务吗?

WCF 新手,但熟悉 COM+ - 我可以将 WCF 服务包装在 COM+ 应用程序中吗?

我意识到很多人可能会忽略这个问题并质疑我的动机(这很好),但我实际上想知道这是否从根本上也是可能的。