我有一个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.
应用程序池在网络服务帐户下运行,此帐户也被授予对相关目录的修改权限。
答案 0 :(得分:1)
第三方确认问题是由于内存分配问题造成的。堆栈上分配的金额不足。
dll因此导致堆栈溢出并暂时关闭w3wp.exe,而IIS会自动重新启动另一个进程。