标题几乎解释了整个问题。我已经浪费了很多时间来解决这个问题,但我似乎没有深究它。
我有一个非托管DLL,我尝试在C#应用程序中调用。
[DllImport("MyTest.dll")]
private static extern int DoSomething([MarshalAs(UnmanagedType.LPStr)] String text, int number)
如果我在控制台应用程序(平台:32位+非托管代码调试)中调用此DLL,一切正常。如果我禁用“非托管代码调试”,则在调试期间,应用程序将无任何异常地静默崩溃。
如果我在Visual Studio中的Web服务中调用此DLL(平台:32位+非托管代码调试),它只会“崩溃”而没有任何异常。调试刚停止,Webservice停止运行。如果我禁用“非托管代码调试”,我会收到“IIS已停止工作”异常。所以无论我做什么,我都不会得到对我有用的例外。
有人知道如何才能获得有关此问题的更多信息吗?为什么它在控制台应用程序中运行而在我的IIS上运行?