2011-06-17 41 views
1

我有一個ASP.Net Framework 4 Web應用程序,它可以對使用C++編寫的第三方非託管dll進行互操作調用。由ASP.Net調用的非託管dll無法在IIS6下創建文件

該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

只是一個快速檢查它是一個32位互操作和一個32位的網絡應用程序? – 2011-06-17 09:35:49

+0

這兩個DLL和網站都是32位,是的。 – Kynth 2011-06-17 09:37:09

+0

該死的有我的理論。 – 2011-06-17 09:37:52

回答

1

第三方確認問題是由於內存分配問題。分配在堆棧上的金額不足。

該DLL由於堆棧溢出而導致暫時關閉w3wp.exe,同時IIS自動備份另一個進程。