CORBA(语言不可知)/ RMI(Java)和(D)COM(MS)今天仍然相关,还是有超越它们的技术?
干杯,J
我们目前有许多C++/MFC应用程序通过DCOM相互通信.现在我们将更新应用程序,并且还希望用更现代的东西替换DCOM,这样更容易使用.但我们不知道是什么.你怎么看
编辑
交换的数据不是其他人可能感兴趣的.它只是在不同计算机上运行的程序的不同部分之间的状态信息.
是否有api来更改COM安全性的访问权限?我需要为"Edit Limits ..."和"Edit Default ..."写新值.这些普通的注册表设置?找不到如何设置这些条目.
我被赋予了编写Powershell脚本以从头开始设置服务器以作为Web应用程序的一部分运行我们的服务的任务,并且设置此服务器所需的步骤之一是更改已安装服务的DCOM配置,特别是将帐户添加到"启动和激活"/"访问"权限,并在添加这些帐户后设置这些帐户的权限.
是否有使用Powershell的方法?我无法找到一种具体的方法来实现我的目标,所以任何帮助都会很棒
我可以找到各种关于如何为DCOM编程的东西,但实际上没有关于如何以编程方式设置/检查安全性的内容.
我不是要重新创建dcomcnfg,但如果我知道如何在C#(首选或VB.net)中重现dcomcnfg的所有功能,那么我的目标就在眼前.
我似乎无法在此找到任何好的资源,没有开源API或甚至是如何执行每个步骤的快速示例.即使在这里,DCOM或dcomcnfg也没有返回任何结果,也没有关于如何设置/验证/列出安全性的结果.
如果有人对开放API或某些示例有一些指示,我将不胜感激.
我需要将我的COM DLL部署为COM +应用程序.我曾经从组件服务管理器(dcomcnfg.exe)那样做.但我的要求是从命令行部署它.有命令这样做吗?
更新:如何卸载相同的?
谢谢.
我有一个相当古老的项目:DCOM客户端和服务器,都在C++\ATL中,只有Windows平台.一切正常:本地和远程客户端连接到服务器并同时工作没有任何问题.
但是当远程客户端崩溃或被任务管理器或"taskkill"命令或电源关闭杀死时 - 我遇到了问题.我的服务器对客户端崩溃一无所知,并尝试向所有客户端发送新事件(也已经崩溃).结果我有暂停(服务器无法向已经崩溃的客户端发送数据),它的持续时间与崩溃的远程客户端的数量成正比.在5次崩溃后,客户端暂停时间过长,等于完全服务器停止.
我知道DCOM"ping"机制(DCOM应该断开6分钟静默后不会响应"每2分钟ping一次"的客户端).实际上,经过6分钟的挂机后,我有一段时间的正常工作,但服务器又回到"暂停"状态.
我能做些什么呢?如何使DCOM"ping"工作正常?如果我将实现自己的"ping"代码,是否可以手动断开旧的DCOM客户端连接?怎么做?
有没有办法以编程方式获取有关启动DCOM应用程序身份的信息.看附图了解我的意思.

我试图使用WMI
ManagementObjectSearcher s = new ManagementObjectSearcher(new ManagementScope(@"\\.\root\cimv2"), new ObjectQuery(
"select * from Win32_DCOMApplicationSetting where AppID='{048EB43E-2059-422F-95E0-557DA96038AF}'"))
ManagementObjectCollection dcomSett = s.Get();
var value = dcomSett.Cast<ManagementObject>().ToArray()
[0].Properties["RunAsUser"].Value;
Run Code Online (Sandbox Code Playgroud)
但"RunAsUser"属性为空.也试过Interop.COMAdmin
COMAdmin.COMAdminCatalogClass catalog = (COMAdmin.COMAdminCatalogClass)new COMAdmin.COMAdminCatalog();
(COMAdmin.COMAdminCatalogCollection)catalog.GetCollection("Applications")
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我设法获得MMC的"组件服务"管理单元中"COM +应用程序"节点下列出的应用程序:

我是COM,DCOM,COM +的新手,确信我错过了一些重要的东西.
过了一会儿,我发现为什么我曾经在第一种方法(ManagementObject)中得到NULL.您将收到:
但我还是需要一种方法来改变MMC中DCOM Config节点下的Microsoft PowerPoint Slide等项目的身份.
我想在操作后将Excel文件打印到pdf文件中。对于操作,我使用了.xlsx运行良好的包。有一个功能,printSetup但我找不到开始打印的功能。有解决方案吗?
library(xlsx)
file <- "test.xlsx"
wb <- loadWorkbook(file)
sheets <- getSheets(wb) # get all sheets
sheet <- sheets[[1]] # get first sheet
# HERE: MAGIC TO SAVE THIS SHEET TO PDF
Run Code Online (Sandbox Code Playgroud)
它可能是通过包使用DCOM的解决方案RDCOMClient,但我更喜欢平台独立的解决方案(例如使用xlsx),因为我在 MacOS 上工作。有任何想法吗?
我正在使用 WMI(Windows 管理规范)尝试从一组远程计算机收集一些信息。问题是,每次我尝试使用以下命令启动与远程计算机/资源的连接:
//IWbemLocator::ConnectServer method (wbemcli.h)
m_pLoc->ConnectServer ....
Run Code Online (Sandbox Code Playgroud)
在哪里
IWbemLocator *m_pLoc;
Run Code Online (Sandbox Code Playgroud)
(可以假设m_pLoc已正确初始化),如果远程资源不可用,Windows会在Windows事件查看器中生成日志事件:
DCOM 无法使用任何配置的协议与计算机进行通信;PID 请求......
问题是,鉴于大量远程设备在某些时候无法访问,日志会被淹没。
每次我尝试启动连接时,是否有任何方法可以控制或阻止 Windows 在事件查看器中推送事件?似乎争论:
IWbemLocator::ConnectServer method (wbemcli.h)
Run Code Online (Sandbox Code Playgroud)
或
CoCreateInstance用于初始化 IWbemLocator 不允许我正在寻找的这种非常自定义的配置。有什么建议或替代方案吗?谢谢你!