COM+ 时缺少 DLL应用程序客户端代理在 Windows 2003 Server 和 Windows 7 上导出
在 Windows 2003 Server 和 Windows 7 上,导出 COM+ 应用程序客户端代理时,被代理的 DLL 不会包含在创建的 MSI 文件中。 MSI 将安装,但由于未包含 DLL,因此无法实例化远程应用程序。
从 Windows 2000 服务器导出的同一 COM+ 应用程序包含 DLL,但安装程序无法在 Windows 7 计算机上运行。
On Windows 2003 Server and Windows 7 when a COM+ application client proxy is exported, the DLL which is proxied is not included in the MSI file that is created. The MSI will install, but since the DLL is not included, the remote application cannot be instantiated.
The same COM+ application exported from a Windows 2000 server includes the DLL, however the installer won't run on a Windows 7 machine.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为什么在 WINDOWS 2003 服务器或更高版本上导出的 COM+ 应用程序中缺少 DLL?
您无法再将 COM+ DLL 安装到服务器上的 System32 文件夹中。在 Windows 2003 服务器及更高版本(包括 Windows 7)中,导出 COM+ 包时,不会导出在 Windows\System32(或其以下文件夹)中注册的任何 DLL。根据 Microsoft 支持人员的说法,这是设计使然。 (此信息尚未由 Microsoft 公开发布,因此我们必须向他们开具票证才能发现问题。)
症状是导出的 MSI 文件不包含 COM+ DLL,如果:< br>
1. COM+ DLL 已在 System32 中注册并且
2. COM+ 包在 Windows 2003 或更高版本上导出。
将创建并安装 MSI,但是应用程序将无法实例化对象,因为从未安装 DLL。使用 Wise Installation Editor 等安装编辑器打开 MSI 将显示该 DLL 未包含在 MSI 中。
答案是将 COM+ 应用程序 DLL 注册到 Windows\System32 以外的文件夹中。
为什么从 WINDOWS 2000 服务器导出的 COM+ 应用程序不能安装在 WINDOWS 7 上?
COM+ 有两个版本:v1.0 和 v1.5。不同的操作系统导出并安装这些版本的各种组合:
导出客户端代理
-Server 2000 导出 1.0 格式
-Windows 2003 可以导出 1.0 或 1.5
-Windows 2008/7 只能导出1.5
安装客户端代理
-Windows XP 可以安装 1.0 或 1.5 格式的代理
-Windows 7 只能安装 1.5 格式的代理
COM+ 应用程序必须在 Windows 2003 或更高版本上以 COM+ 1.5 格式导出,才能安装在 Windows XP 和 Windows 7 客户端上。
WHY IS DLL MISSING FROM COM+ APPLICATION EXPORTED ON WINDOWS 2003 SERVER OR GREATER?
You can no longer install COM+ DLLs into the System32 folder on the server. In Windows 2003 server and beyond (including Windows 7) when exporting COM+ package any DLLs registered in Windows\System32 (or folders below that) will not be exported. According to Microsoft Support, this is by design. (This information has not been published publicly by Microsoft, so we had to open a ticket with them to discover the issue.)
The symptoms are that the exported MSI files do not contain the COM+ DLLs if:
1. the COM+ DLL is registered in System32 and
2. the COM+ package is exported on Windows 2003 or later.
The MSI will be created and will install, however the applications will not be able to instantiate the objects because the DLL was never installed. Opening the MSI with a install editor like Wise Installation Editor will reveal that the DLL is not included in the MSI.
The answer is to register your COM+ application DLLs in a folder other than Windows\System32.
WHY WON'T A COM+ APPLICATION EXPORTED FROM WINDOWS 2000 SERVER INSTALL ON WINDOWS 7?
There are two versions of COM+: v1.0 and v1.5. Different operating systems export and install various combinations of these versions:
Exporting Client Proxies
-Server 2000 exports the 1.0 format
-Windows 2003 can export either 1.0 or 1.5
-Windows 2008/7 can only export 1.5
Installing Client Proxies
-Windows XP can install proxies in either 1.0 or 1.5 format
-Windows 7 can only install proxies in 1.5 format
COM+ applications must be exported on Windows 2003 or greater in the COM+ 1.5 format to install on both Windows XP and Windows 7 clients.