gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 15:30:05 25 4
gpt4 key购买 nike

我的包装第三方 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com