.net - LinkPoint 支付与 IIS7 的集成导致 w3wp.exe 崩溃

标签 .net visual-studio iis-7 crash linkpoint

我的包装第三方 DLL 的程序集在我的 Windows 测试工具应用程序中很好,而且它们 在 Debug模式(VS 2008 Visual Studio 开发服务器)下生成时在 Web 服务中工作正常!但是,在本地 IIS 7 Web 服务器中运行时,应用程序总是崩溃。以下是在本地 IIS 服务器上运行时事件日志中的崩溃详细信息:

Faulting application w3wp.exe, version 7.0.6001.18000, time stamp 0x47919413, faulting module ntdll.dll, version 6.0.6001.18000, time stamp 0x4791a783, exception code 0xc0000374, fault offset 0x000aada3, process id 0x990, application start time 0x01c9b4133281d5d0.

讨论:我围绕来自第三方的 .NET dll(来自 FirstData 的 LinkPointTransaction.dll)编写了一个包装器,并且我编写了一些引用该包装器的其他程序集。在代码运行时,对第三方 LinkPointTransaction.LinkPointTxn.Send() 的调用通过 Internet 将事务成功发送到 FirstData,但我的应用程序在某处崩溃了 w3wp.exe 那个电话中,在它到达下一行之前。它不会抛出我能看到的托管异常;它只是崩溃。除了 IIS7 之外,我的机器上的任何地方都可以正常工作。

我运行的是 64 位 Vista Home Premium (IIS7),但我在 IIS 中启用了 32 位应用程序,专门为此 Web 服务创建了一个单独的 AppPool,并将我的所有程序集强制为 x86。我尝试在我的用户帐户下以管理员权限运行应用程序池,而不是作为网络服务。 UAC 已关闭。我尝试过集成和经典模式。我已在本地防火墙中明确打开 LinkPointTransaction.dll 用于与 FirstData 通信的 TCP/IP 端口。我什至关闭了防火墙(在路由器后面)。

使用我列出的任何这些解决方法,它总是在 Windows 应用程序和 VS 开发服务器内的 Web 服务中工作,但从不 在本地 IIS 服务器上工作。

IIS 网站的 AppPool 处于经典模式。 (回应 吉顿)

最佳答案

我认为这不再是一个编程问题,所以我正在“回答”它。

使用 WinDbg,我已经追踪到供应商提供的 dll。当应用程序崩溃时,dll 取消分配内存的方式似乎有问题。调用堆栈显示了 dll 中的内存释放操作,然后是内核中的“堆释放”操作,然后是 ntdll 中的“释放堆”操作,以及随后的“报告堆失败”(然后是 RtlReportCriticalFailure),它拆除了整件事。

我仍然不明白为什么它在 Windows 窗体应用程序和 IIS 6 中有效,但在 IIS 7 中无效。然而,这已成为一个平台问题,而不是“编程”问题。此外,修复它可能是供应商的责任,而不是我来解决它。

更新:在向供应商提交技术支持请求后的两天内,他们提供了一组更新的集成 DLL,这些 DLL 使用您在 regsvr32 中注册的 COM 对象,并且可以在 IIS7 中运行如果在 WOW64 目录中注册,则为 64 位。赞成第一个数据技术支持!

关于.net - LinkPoint 支付与 IIS7 的集成导致 w3wp.exe 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/712648/

相关文章:

html - 将 2 个表格的单元格列对齐在一起

c# - 适用于 iis6 和 iis7 的 Web 项目 MSI

c# 点对点编程(最好是去中心化的)

c# - 在不使用类的情况下,C# 中 javascript 对象的替代方案是什么?

c++ - CoGetClassObject 返回错误

visual-studio - 任何人都可以识别这个 Visual Studio 2010 扩展吗?

Asp.net 发布网站 : The specified module could not be found. HRESULT 异常:0x8007007E

asp.net - 使用 ASP.NET Forms 身份验证应用程序的当前用户

c# - 如何最大化 http.sys 文件上传性能

c# - WPF 在 Tab 键上禁用窗口关闭和最小化按钮