ASP.NET在初始请求后无法调用非托管dll

时间:2010-11-09 08:47:38

标签: c# asp.net iis dll

所以我有一个非托管的C ++ dll,我从我的ASP.NET应用程序调用它,它有一个入口点和几个传递数据的结构。如果我创建一个C#控制台应用程序来调用该DLL它工作正常。如果我将它挂钩到我在我的本地WinXP机器(IIS 5.1)上运行的asp.net应用程序,那么它可以正常工作。

当我将它发布到运行Windows 2003和IIS 6的开发环境时,前一个或两个调用工作正常,但它只是停止响应。我没有收到任何错误消息,警告等等......但是我的头发很快就用完了!

我已经在自己的应用程序池中设置了运行asp.net应用程序的虚拟目录,但这似乎没有任何影响。任何帮助将不胜感激。

干杯

2 个答案:

答案 0 :(得分:0)

当你说它停止响应时你是什么意思?您可以尝试放置跟踪调用周围输入/输出的日志语句,以查看它确切阻塞的位置。还要确保检查服务器事件日志中写入未处理的ASP.NET错误。作为最后的手段,您可以在服务器上安装Visual Studio远程调试工具(msvsmon.exe),并通过附加到相应的w3wp进程来逐步执行代码。实际上调试工具不需要安装,简单的副本就足够了(C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger)。

答案 1 :(得分:0)

故障实际上与C ++代码本身有关,它有一些代码来处理线程环境的锁定,这似乎是失败的。不知道为什么它适用于我的本地机器而不是开发环境,但这是另一个问题。

全部谢谢