我很好奇COM +,DCOM.我知道MSFT不鼓励你原生使用这个工具(意思是用C/C++,实际上没有很多文档可用)但我想学习使用这些技术,比如将Internet Explorer嵌入到C程序中.
我想也许我可以找到那些使用过这个或那个知道这项技术的人.
从哪儿开始?有任何想法吗?任何例子(如Hello World DCOM)?
我们有一个在2003 Server上运行的Windows服务.它使用Word Interop打开源Word文档,然后用它做一些事情.它也适用于Excel和PowerPoint文件.
最近我们尝试将此服务移动到Windows 2008 Server计算机上并且遇到了实际问题.
Microsoft.Office.Interop.Excel.Documents.Open上的Microsoft.Office.Interop.Excel.Workbooks.Open COMException中的COMException
当Windows服务在2008 Server上运行时,我得到上述异常.查看任务管理器,应用程序确实加载正常,但之后不久再次关闭.
我已经阅读了有关Vista和Server 2008的内容,而不再使用Session0,并且已经尝试相应地更改Office DCOM安全属性,包括将运行它们的用户的身份更改为Integrated但无济于事.
有谁知道这是否可行?这是我们系统的一个基本方面,因此我们需要能够做到这一点.
谢谢
dcom windows-services ms-office comexception windows-server-2008
多年来,我一直使用旧的" SAP DCOM Connector "在基于Microsoft的应用程序和SAP之间进行通信.不幸的是,SAP多年来不再支持这种古老而又高性能的技术.因此,我希望并且必须迁移到另一种更新的技术.
首先是" SAP Connector for .NET 2.0 ".乍一看似乎是一个很好的替代品.但是这个连接器只能用于.NET 1.1(还有.NET 2.0的解决方法),并且将来没有进一步的开发.对你SAP感到羞耻!! SAP表示,将来我们应该为Visual Studio 使用" Enterprise Services Explorer ".但是这项技术仅适用于ECC6.0而不适用于4.6C.这就是重点.我需要一种现代技术,可用于4.6C和ECC6.0 !!
所以我做了一些调查,发现了" Theobald-Software "中的产品" ERPConnect ".它看起来非常好,他们有一个好的和廉价的许可证模型.该产品的第一个问题是,不允许向客户提供基于ERPConnect的应用程序的源代码.这很奇怪,因为客户通常也会购买应用程序源的权利.第二个问题是,该产品不是来自SAP,也未经SAP认证.许多客户不希望来自第三方的产品.
所以现在我的问题是:是否有进一步的可能性将Microsoft World与SAP World连接起来 ,并且有人知道上述方法的替代方案吗?特别是我需要使用RFC的替代方案.
是否有一些(工作)示例如何从Windows创建RPC到Linux?
客户端应该是windows NT应用程序,服务器是linux.
它需要是MSRPC.
没有Corba,没有XML-RPC,SUN-RPC等
MSDN说这个:
RPC可以在基于Windows操作系统的所有客户端/服务器应用程序中使用.它还可用于为包含Unix和Apple等操作系统的异构网络环境创建客户端和服务器程序.
不幸的是,在Google上花了几个小时后我就放弃了.
我的期望:
有人能指出我吗?
我有一个使用OLE自动化编组器的DCOM客户端和服务器应用程序.它们在同一台PC上运行时工作正常,但当服务器位于不在同一域的不同PC上时,我得到E_ACCESSDENIED(0x80070005).
服务器PC配置了dcomcnfg,以便为我在客户端上指定的登录名和密码的用户提供对任何DCOM对象的所有访问权限.ServerApp及其类型库已在服务器pc上注册.
类型库也在客户端PC上注册.我直接在ClientApp中指定服务器名称,因此据我所知,客户端PC上不需要dcomcnfg配置.
具有服务器名称,登录名,域名和密码的CreateInstanceEx()工作正常.它返回IUnknown,同时在服务器PC上启动ServerApp.
但是当我尝试使用QueryInterface()获取服务器支持的接口时,我得到了E_ACCESSDENIED.
分析安全事件日志,我有两条记录:
首先,我在ClientApp中指定其凭据的用户成功进行网络登录.当我调用CreateInstanceEx()时会发生这种情况.
接下来,我在客户端PC上登录的用户登录尝试失败.由于两台PC不在域中,因此服务器PC不知道该用户.
现在,为什么这个用户会登录到服务器,特别是当我调用所有东西的QueryInterface时?
研究CreateInterfaceEx参数,似乎有某种模仿机制正在进行中.但目前还不清楚是谁冒充了谁.涉及三个用户凭据:
ServerApp在服务器PC上运行的用户(在dcomcnfg中配置).
连接时ClientApp指定凭据的用户.
ClientApp在客户端PC上运行其凭据的用户.
无论你如何看待它,如果涉及#3,那么它就是一个用户.如果DCOM要在服务器PC上识别/模仿#3,为什么我需要指定#2的凭证?到了什么地步?
DCOM冒充#2似乎是合乎逻辑的,因为这是我明确指定为我的凭据.但为什么第二次登录尝试呢?
有人可以解释模仿是如何工作的,还有一种方法可以忽略它并以dcomcnfg中指定的用户身份运行?
似乎对DCOM存在很多敌意,我很想知道为什么.对于仍然使用C++写入Win32 SKD的公司,有没有真正的理由不在当前或未来的开发中使用DCOM?Windows的某些未来版本是不是会支持它?它太脆弱了,不能经常工作吗?与其他技术相比,实施起来是否过于复杂?这是怎么回事?
我开发了一个服务器应用程序,它使用Excel 2007 COM自动化来转换一些xls文件.它作为Windows Datacenter实例上的服务启动,在其自己的用户下运行,我不得不更改DCOM安全设置("作为交互式用户启动")以使其工作.
问题是,当我注销(通过RDP)时,它会停止工作.我登录,它再次工作.
有没有人有同样的问题?我很高兴在这一点上有任何帮助.
我正在创建一个使用office 2007/2010自动化的简单asp.net网站..当我在本地机器(窗口7)上的iis 7上发布网站时有一个例外
Retrieving the COM class factory for component with CLSID
{000209FF-0000-0000-C000-000000000046} failed due to the following error:
80080005 Server execution failed (Exception from HRESULT: 0x80080005
(CO_E_SERVER_EXEC_FAILURE)).
Run Code Online (Sandbox Code Playgroud)
我搜索了这个异常,我发现我必须在DCOM配置中设置一些权限.
我已经打开组件服务,打开DCOM配置,但我还没有找到Microsoft Word文档我只找到办公室字97 - 2003.
谁能告诉我如何解决这个问题.
我们的应用程序广泛使用COM和DCOM,因此我们需要确保正确设置COM安全权限.我知道我可以在组件服务MMC管理单元下访问这些权限,我也可以设置下的属性页计算机的默认值/极限

在DCOM Config节点下,我可以向下钻取并为各个应用程序设置安全权限

我也理解"默认值"(除非根据每个应用程序明确设置权限,DCOM应用程序将使用的内容),"限制"(即使每个应用程序设置超出这些设置也将强制执行哪些权限)之间的关系,但是我我不能理解(并且找不到任何文档)我可以设置的不同设置之间的区别