1

我在 Windows Web Server 2008 R2 x64 上构建了一个导致缓冲区溢出异常的应用程序,具有以下签名

问题签名:

问题事件名称:BEX

应用程序名称:AlgorithmEvaluation.exe

应用程序版本:1.0.0.0

申请时间戳:4f7c6063

故障模块名称:clr.dll

故障模块版本:4.0.30319.1

故障模块时间戳:4ba1d9ef

异常偏移量:002b5b8c

异常代码:c0000409

异常数据:00000000

操作系统版本:6.1.7600.2.0.0.1296.17

区域设置 ID:1033

附加信息 1:5044

附加信息2:50442b9f233457091c25e076784708c8

附加信息 3:3eea

附加信息 4:3eeac65aee1d9241f0a9b0ca3bae03d6

该应用程序是用 C# 编写的,并调用一个 .NET dll(用 C++/CLI 编写),而后者又包装了一个本机 C++ dll。由于我没有 x86 C++ dll 的源代码,因此我已将所有其他代码设置为构建为 x86。C# 应用程序是多线程的,使用 Microsoft 的 CCR,它读取和写入 SQL Server 2008 Express 数据库。

按照MSDN的这些说明,我已将 C++/CLI 项目设置为 TSAWARE,据此我认为我的 C# 项目默认情况下应该已经是 TSAWARE(我正在使用远程桌面访问 Web 服务器机器,如果这很重要) . 我也读过这篇technet文章。我考虑按照MSDN的建议关闭 DEP,但我担心这可能会导致更糟糕的事情发生

该应用程序在我运行 Windows 7 Home x64 的笔记本电脑上没有问题。

不幸的是,我没有硬件可以在合理的时间内在我的笔记本电脑上运行它。有人有想法吗?谢谢

4

0 回答 0