DLL与visual studio webserver一起使用但在IIS中崩溃了吗?

时间:2011-11-09 08:04:31

标签: c# dll iis-7 crash

我在我的web应用程序中调用非托管dll并且它的工作正常但是如果我在IIS中运行Web应用程序,则在调用dll函数时会崩溃。我无法捕获异常,只有ie错误消息“页面无法显示”,并且在事件查看器中出现错误:

Faulting application name: w3wp.exe, version: 7.5.7601.17514, time stamp: 0x4ce7a5f8
Faulting module name: ntdll.dll, version: 6.1.7601.17514, time stamp: 0x4ce7ba58
Exception code: 0x4000001f
Fault offset: 0x000ce625
Faulting process id: 0x2084
Faulting application start time: 0x01cc9eb290740fe8
Faulting application path: C:\Windows\SysWOW64\inetsrv\w3wp.exe
Faulting module path: C:\Windows\SysWOW64\ntdll.dll
Report Id: e0fc374f-0aa5-11e1-88bd-00224d5137ef

IIS设置: 启用32位应用程序:正确 管理管道模式:已整合 身份:LocalSerice(尝试每个选项)

我正在使用Windows 7和C#VS2010 Framework 4.0

2 个答案:

答案 0 :(得分:2)

试试这个,

包装函数调用
try {
   // Call your delphi dll function here
} catch {
   Console.WriteLine("error");
}

现在在Console.WriteLine部分设置断点。

通过使Visual Studio通过IIS(而不是VS开发Web服务器)运行应用程序来调试应用程序。

当您在catch块内点击断点时,转到Watch Window并检查$exception变量中存储的内容。

这可以为您提供更多线索。

答案 1 :(得分:0)

尝试创建STA线程并通过它与托管dll进行通信。 检查this article