从Windows 2003到Windows 2008 Server的COM +应用程序移植问题 [英] Issues with porting COM+ applications from Windows 2003 to Windows 2008 Server

查看:117
本文介绍了从Windows 2003到Windows 2008 Server的COM +应用程序移植问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在将应用程序从Windows Server 2003迁移到Windows Server 2008 R2。我在迁移时遇到了一些问题。

We are migrating our applications from Windows Server 2003 to Windows Server 2008 R2. I am facing some issues with the migration.

我已经在Windows Server 2008 R2中部署了许多COM +组件(32位)和DCOM组件(32位)。这些COM +和DCOM组件是VC ++代码。

I have deployed many COM+ components (32 bit) and DCOM components (32 bit) in the Windows Server 2008 R2. These COM+ and DCOM components are VC++ code.

我在同一台服务器中部署了32位.net 3.5服务,该服务调用了上面提到的COM +组件。

I have a .net 3.5 service 32 bit deployed in the same server, which calls the COM+ components mentioned above.

每当我尝试启动该服务时,它都不会启动并在事件日志中引发多个错误。

Whenever i try to start the Service , it does not start and throw multiple errors in the event log.

主要我们得到的错误是远程过程调用失败错误**。(**远程过程调用失败。(来自HRESULT的异常:0x800706BE))****基于调试期间的观察,创建了COM对象,但是当一些该方法称为抛出远程过程异常。

The main error that we get are the Remote procedure call failed errors**.(**The remote procedure call failed. (Exception from HRESULT: 0x800706BE))**** Based on observation during debugging, the COM objects are created ,but when some method is called the remote procedure exception is thrown.

在Win 2003 Server Box中同样可以正常工作。

The same works fine in a Win 2003 Server Box.

错误

第一个错误:


故障应用程序名称:dllhost.exe,版本:6.1.7600.16385,时间戳:0x4a5bc6b7

Faulting application name: dllhost.exe, version: 6.1.7600.16385, time stamp: 0x4a5bc6b7

故障模块名称:KERNELBASE.dll,版本:6.1.7600.16385,时间戳:0x4a5bdbdf

Faulting module name: KERNELBASE.dll, version: 6.1.7600.16385, time stamp: 0x4a5bdbdf

除外ion code:0xe06d7363

Exception code: 0xe06d7363

故障偏移量:0x0000b727

Fault offset: 0x0000b727

故障进程ID:0x8ac

Faulting process id: 0x8ac

故障排除应用程序开始时间:0x01cb437094216ea7

Faulting application start time: 0x01cb437094216ea7

故障排除应用程序路径:C:\Windows\SysWOW64\dllhost.exe

Faulting application path: C:\Windows\SysWOW64\dllhost.exe

故障模块路径:C:\Windows\syswow64\KERNELBASE.dll

Faulting module path: C:\Windows\syswow64\KERNELBASE.dll

报告ID:d25f6a31-af63- 11df-8252-0050568e251b

Report Id: d25f6a31-af63-11df-8252-0050568e251b

第二个错误:


系统调用了一个自定义组件,该组件发生故障并生成异常。这表明自定义组件存在问题。通知开发人员此组件已发生故障,并向他们提供以下信息。

The system has called a custom component and that component has failed and generated an exception. This indicates a problem with the custom component. Notify the developer of this component that a failure has occurred and provide them with the information below.

服务器应用程序ID:{727318BC-A725-4ED6-8DDD-9DE80262D3CA}

Server Application ID: {727318BC-A725-4ED6-8DDD-9DE80262D3CA}

服务器应用程序实例ID:

Server Application Instance ID:

{739972C1-74DA-4169-A093-32AAAA965EC9}

{739972C1-74DA-4169-A093-32AAAA965EC9}

服务器应用程序名称:

此错误的严重性已导致进程终止。

The serious nature of this error has caused the process to terminate.

例外:E06D7363

Exception: E06D7363

第三次错误:


故障存储桶,键入0

Fault bucket , type 0

事件名称:APPCRASH

Event Name: APPCRASH

响应:不可用

Cab ID:0

问题签名:

P1:dllhost.exe

P1: dllhost.exe

P2:6.1.7600.16385

P2: 6.1.7600.16385

P3:4a5bc6b7

P3: 4a5bc6b7

P4:KERNELBASE.dll

P4: KERNELBASE.dll

P5:6.1.7600.16385

P5: 6.1.7600.16385

P6:4a5bdbdf

P6: 4a5bdbdf

P7:e06d7363

P7: e06d7363

P8:0000b727

P8: 0000b727

P9:

P10:

附加文件:

这些文件可能可以在此处使用:

These files may be available here:

C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_dllhost.exe_58c2666ce94b9901a2cc454f2e8cd8cc5742421_085d298c

C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_dllhost.exe_58c2666ce94b9901a2cc454f2e8cd8cc5742421_085d298c

分析符号:

重新检查解决方案:0

Rechecking for solution: 0

报告ID:d25f6a31-af63 -11df-8252-0050568e251b

Report Id: d25f6a31-af63-11df-8252-0050568e251b

第四次错误:


故障存储桶,键入0

Fault bucket , type 0

事件名称:APPCRASH

Event Name: APPCRASH

响应:不可用

Cab ID:0

问题签名:

P1 :dllhost.exe

P1: dllhost.exe

P2:6.1.7600.16385

P2: 6.1.7600.16385

P3:4a5bc6b7

P3: 4a5bc6b7

P4:KERNELBASE.dll

P4: KERNELBASE.dll

P5:6.1.7600.16385

P5: 6.1.7600.16385

P6:4a5bdbdf

P6: 4a5bdbdf

P7:e06d7363

P7: e06d7363

P8:0000b727

P8: 0000b727

P9:

P10:

附加文件:

这些文件可能在这里可用:

These files may be available here:

C:\ProgramData\Microsoft\Windows\WER\ReportQueue\ AppCrash_dllhost.exe_58c2666ce94b9901a2cc454f2e8cd8cc5742421_085d298c

C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_dllhost.exe_58c2666ce94b9901a2cc454f2e8cd8cc5742421_085d298c

分析符号:

重新检查解决方案:0

Rechecking for solution: 0

报告ID:d25f6a31-af63-11df-8252-0050568e251b

Report Id: d25f6a31-af63-11df-8252-0050568e251b

报告状态:0

第五个错误:


服务无法启动。 System.Runtime.InteropServices.COMException(0x800706BE):远程过程调用失败。 (来自HRESULT的异常:0x800706BE)

Service cannot be started. System.Runtime.InteropServices.COMException (0x800706BE): The remote procedure call failed. (Exception from HRESULT: 0x800706BE)

我们已经根据分析检查了以下内容,

We have checked for the following based on analysis,

1。权限问题-检查所有人,已认证用户, IWAM_ServerName和 IUSR_ServerName是否具有完全控制权。在论坛上看到他们应该对某些系统文件夹具有NTFS读取/执行权限。不知道如何检查。

1. Permission issues - Checked if Everyone, authernticated users , IWAM_ServerName and IUSR_ServerName have full control. Saw in a forum that they should have NTFS read/execute permissions on some system folders. Dont know how to check this.

2。 DLL地狱问题-已检查注册,一切似乎都很好。

2. DLL Hell problems - Checked registration and everything seems to be fine.

3。处理位问题-检查注册表,所有条目都在WoW6432下,并且所有应用程序组件均为32位。没有对64位组件的处理调用。还用于32个应用程序的COM。

3. Process 'bitness' problems - Checked registry and all entries are under WoW6432 and all the application compoentns are 32 bit. There are no in process calls to 64 bit components. Also used COM for 32 applications.

4。防火墙问题-此服务与COM组件位于同一台计算机上。我们是否应该更改一些与MSTDC安全性相关的设置,例如启用COM +入站的高级防火墙配置?我们不确定,因为我们是第一次配置服务器。

4. FireWall issues - This service is in the same machine as the COM component. Should we change some settings related to MSTDC security, Advanced firewall configuration like enabling COM+ inbound? We are not sure as we are configuring the server for the first time.


  1. 启用运行32位应用程序检查框

但以上方法均无济于事。

But none of the above is helping.

我们我们正在尝试通过示例组件来复制问题。我们创建了.NET组件并将其部署在COM +中。试图通过VB脚本和C#控制台应用程序访问它,并且在Windows 2003框中可以正常工作。同样在Windows 2008 Server框中不起作用。我们没有收到RPC错误,但以下内容

Also, we are trying to replicate the issue with sample components.We have created a .NET component and deployed it in COM+. Tried accessing it through VB script and C# console application and it works fine in Windows 2003 box. Same doesnt work in Windows 2008 Server box. We are not getting RPC errors but the following,


vb脚本错误: 800a01ad activex组件无法创建对象

.net客户端调用com +:未注册的类:HRESULT 0x80040154(REGDB_E_CLASSNOTREG)

.net client invoking com+ : CLASS NOT REGISTERED : HRESULT 0x80040154 (REGDB_E_CLASSNOTREG)

经过分析发现,这些问题可能是由于权限问题,dll地狱或进程位问题引起的。

After analysis found that these problems may be due to permission issues, dll hell or process 'bitness' issues.

如果有人可以帮助我们解决这个问题。

It would be great if someone could help us out in resolving this issue.

谢谢,
Vijay

Thanks, Vijay

推荐答案

这都是相同的崩溃原因。您的组件抛出了C ++异常,并且没有被catch语句捕获。使用调试器来找出其引发异常的原因。

This is all the same crash reason. Your component threw a C++ exception and it wasn't caught with a catch statement. Use a debugger to find out why it is throwing exceptions.

这篇关于从Windows 2003到Windows 2008 Server的COM +应用程序移植问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆