问题标签 [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.
wcf - 我可以在 WCF 中托管 COM+ 应用程序吗?
是否可以在 WCF 中托管我的 COM 对象?我想将它们移出组件服务。任何建议都会有所帮助
c# - 如果它们不在 COM 互操作中执行,我应该将 LayoutKind.Auto 用于我的结构吗?
默认情况下,C# 中的结构[StructLayout( LayoutKind.Sequential )]
的实现原因基本上是说明这些类型的对象通常用于 COM 互操作,并且它们的字段必须保持它们定义的顺序。类已LayoutKind.Auto
定义。
我的问题是我是否应该明确声明我的结构,[StructLayout( LayoutKind.Auto )]
这是否会给我带来任何优于默认设置的好处?我的意思是,如果结构是在stack上初始化的,它会有什么不同——即GC不必移动它们吗?当结构在堆上初始化时也会有帮助 - 即是某个类的一部分吗?
.net - 无法使用 Windows 7 或 Windows Server 2008 64 位从 COM+ 目录导出 32 位 ServicedComponent
使用 Windows 2003 Server 或 2000,生成 COM+ 应用程序代理以在另一个系统上使用,包括在导出期间创建的 MSI 包中的 .NET Enterprise Services 组件。.NET 组件也在 GAC 中注册,并且 regsvcs 在安装应用程序代理期间自动运行。
但是,我们发现 Windows Server 2008 不包含该程序集。它将包含 .tlb 但不包含 .dll,也不会将其安装在 GAC 中,当然,当应用程序找不到程序集时,一切都会崩溃。
任何人都知道如何确保这种行为像 2000-2003 年那样有效吗?
更新我们可以仅使用 .NET 程序集生成代理,并且它工作正常,但如果我们尝试将其他程序集或旧版 VB6 COM+ dll 添加到同一包中,则表示它们是为不同的处理器构建的。
更新我知道,如果您在任何 CPU 模式下构建(所有项目都设置为),那么当您通过将程序集拖放到组件服务应用程序中进行注册时,如果它是现有的 64 位应用程序,它将使用 64 位。但是,这是一个 32 位应用程序。在 COM+ 应用程序中注册了 VB6 dll,它们是 32 位的。所以应该使用 32 位注册表等...,并导致应用程序为 32 位。因此,当之后添加 .NET Any CPU 程序集时,它应该是 32 位的……但是当我们导出应用程序时,.NET 程序集不会添加到创建的 .MSI 中。
更新我们发现http://support.microsoft.com/kb/924729讨论了无法导出 32 位 ServicedComponents 的错误......有一个修补程序,但它适用于 Windows Server 2003。我们已经缩小了问题的范围down 并且只有 32 位 ServicedComponents 没有正确导出。
vb.net - VB6 DLL 将回调作为整数,VB.NET 需要委托引用类型
我对打算从 VB6 使用的第三方 COM+ DLL 有疑问,它具有为硬件事件设置回调的功能。但是,我使用的是 VB.NET,并且 AddressOf 现在返回引用类型而不是整数类型,这意味着 COM+ DLL 上的 setCallback 函数显然不能使用。
有没有办法解决这个问题(我没有可用的 VB6 来开发某种包装器),还是我必须找到一个不同的 3rd-party DLL 才能让它工作?作为参考,我正在尝试访问 Logitech G15(v2) 键盘上的 LCD。
作为参考,这里是 setCallback 函数和回调的原型本身:
asp.net - 在 IIS 6 中,一个网站可以从另一个网站读取应用程序级变量吗?那么COM+呢?
我有一个运行多个网站的 IIS 6 Web 服务器。在一个网站中,有 ASP.NET 代码使用以下简单语法设置应用程序变量。
同一服务器上的另一个网站可以读取设置的值吗?
COM+ 应用程序可以读取该值吗?
java - com4j 与 jacob 从 Java 调用 COM 方法
我维护一个使用Jacob或 Java-COM Bridge 的遗留 Java 应用程序,通过 MS VBA 和 MS Word 的 COM 接口进行调用。我一直在看 Sun 的com4j,它看起来很有希望。
它对我来说看起来不错的原因是它使用 vtable 绑定到方法,而不是 IDispatch。假设我们操作的所有 COM 对象都存在 vtable 接口,使用它们而不是 IDispatch 似乎更简洁。回到 COM 和 CORBA 成为热门二进制接口技术的时代,我似乎记得通过 vtable 进行的早期绑定比通过 IDispatch 进行的后期绑定提供了更好的性能。
有人从 Jacob 迁移到 com4j 吗?如果是这样,有哪些陷阱和经验教训?
visual-studio-2008 - COM+ 嗅探/间谍,有可能吗?
我正在为我们从第三方获得的 Visual Studio 加载项编写替代品。他们的插件有一个功能,但是我无法替换它。它通过启动它来与他们的另一个程序(我们仍然需要)交互,告诉它 Visual Studio 的 PID,并让另一个程序通过 COM+ 回调他们的 Visual Studio 插件。
那么,问题是,我如何对加载项和其他应用程序之间的对话进行反向工程?我没有第三方加载项/应用程序的来源,但我确实拥有做我正在做的事情的合法权利,因此逆向工程不是问题。
com+ - 使用 regasm 时 COM+ 组件在什么帐户下运行?
通过 regasm 工具注册时 COM+ 组件在什么帐户下运行?我没有注意到 regasm 用于识别帐户的任何命令参数。鉴于 regasm 需要管理员权限才能运行,我假设 COM+ 组件也可以使用管理员权限运行?
c# - 需要有关使用 C# 或脚本以编程方式配置 COM+ 服务的帮助
是否可以通过编程方式配置 COM+ 服务。
我需要使用 C# 或任何脚本执行以下操作
- 打开管理工具 -> 组件服务
- 展开组件服务 -> 我的电脑 -> COM+ 应用程序
- 右键单击 HyperV 环境管理器(COM+ 服务名称)并选择属性。
- 单击池和回收选项卡
- 在应用程序回收下,将内存限制 (KB) 值设置为 262144。
- 点击确定
- 右键单击 HyperV 环境管理器(COM+ 服务名称)并选择 ShutDown
- 右键单击 HyperV 环境管理器(COM+ 服务名称)并选择开始
如果您能指导我或将代码片段发送给我,那就太好了。
提前致谢。
问候, Sreejith Rajan
assemblies - Wix - ComPlusAssembly - 无法安装类型库
我是 Wix 的新手,我遇到了一个我显然无法自己解决的问题,因此非常感谢任何帮助。
背景简介:我代表一家软件供应商构建一套全面的基于 SOA 的应用程序,用于在大型企业中部署。我们的架构由许多可以独立安装/升级的层组成,所以我正在构建几个安装程序,从头开始组成(如:平台、核心框架组件、服务层、业务层、应用程序层等)。
软件版本:
-Wix 3.5.1309.0 (wix.dll)
- Visual Studio 2008、.Net 3.5
- 构建操作系统:Windows 2008 R2 Standard 64 位
- 部署操作系统:Windows 2008 Standard 32 位
我的问题是关于在 COM+ 应用程序中安装 .Net 程序集。我不断收到错误“无法安装类型库”。我一直在阅读我能找到的所有文档,而且我已经用谷歌搜索了好几天了。我找到了很多关于这个主题的帖子,但我仍然无法解决这个问题。
为了隔离问题,我已将问题提取到单独的安装程序中。首先我运行主安装程序:
1. 将所有程序集安装到 GAC 中,包括要安装在 COM+ 中的程序集。
2. 创建本地用户和组。
3. 创建目标 COM+ 应用程序,包括角色等。
4. 在文件夹中安装目标程序集和配套类型库(以消除任何 GAC 查找问题)
这个安装程序我可以安装/修复/卸载,一切正常。
然后我运行仅包含问题的最小安装程序,它尝试:
1. 在现有 COM+ 应用程序(服务器)中安装程序集,引用预安装的 .dll 和 .tlb。
安装失败,日志显示:
我还注意到回滚会删除 COM+ 应用程序,即使它不是由此安装程序创建的。
我可以使用服务器管理器从安装程序引用的同一物理文件手动安装程序集。从 COM+ 应用程序中手动删除组件后,安装程序就可以工作了!
另外,为什么我必须首先提供一个类型库?EnterpriseServices.RegistrationHelper 无论如何都会动态生成类型库。
这是失败的最小测试安装程序:
干杯,
-尼尔斯