ASP.Net调用的非托管DLL无法在IIS6下创建文件

时间:2011-06-17 09:33:44

标签: asp.net c++ interop iis-6 io

我有一个ASP.Net Framework 4 Web应用程序,它使用C ++编写的第三方非托管dll进行互操作调用。

dll存储在Web应用程序的bin目录中,并在同一Web应用程序的另一个目录中创建文件。

使用Visual Studio 2010(通常)调用可以正常工作,但在IIS6上进行调用时,单个进程会失效。

任何问题的唯一日志是事件查看器中的条目:

Application: w3wp.exe
Framework Version: v4.0.30319
Description: The process was terminated due to stack overflow.

应用程序池在网络服务帐户下运行,此帐户也被授予对相关目录的修改权限。

1 个答案:

答案 0 :(得分:1)

第三方确认问题是由于内存分配问题造成的。堆栈上分配的金额不足。

dll因此导致堆栈溢出并暂时关闭w3wp.exe,而IIS会自动重新启动另一个进程。