Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 非托管DLL-在本地IIS Web服务器上崩溃,但在控制台应用程序中运行_C#_Iis_Crash_Dllimport - Fatal编程技术网

C# 非托管DLL-在本地IIS Web服务器上崩溃,但在控制台应用程序中运行

C# 非托管DLL-在本地IIS Web服务器上崩溃,但在控制台应用程序中运行,c#,iis,crash,dllimport,C#,Iis,Crash,Dllimport,这个标题几乎解释了整个问题。我已经浪费了很多时间来解决这个问题,但我似乎还没有找到问题的根源 我有一个非托管DLL,我试图在C#应用程序中调用它 [DllImport("MyTest.dll")] private static extern int DoSomething([MarshalAs(UnmanagedType.LPStr)] String text, int number) 如果我在控制台应用程序中调用这个DLL(平台:32位+非托管代码调试),一切正常。如果禁用“非托管代码调试”

这个标题几乎解释了整个问题。我已经浪费了很多时间来解决这个问题,但我似乎还没有找到问题的根源

我有一个非托管DLL,我试图在C#应用程序中调用它

[DllImport("MyTest.dll")]
private static extern int DoSomething([MarshalAs(UnmanagedType.LPStr)] String text, int number)
如果我在控制台应用程序中调用这个DLL(平台:32位+非托管代码调试),一切正常。如果禁用“非托管代码调试”,则在调试期间,应用程序会自动崩溃,没有任何异常

如果我在VisualStudio的Webservice中调用这个DLL(平台:32位+非托管代码调试),它会毫无例外地“崩溃”。调试停止,Web服务停止运行。如果禁用“非托管代码调试”,则会出现“IIS已停止工作”异常。所以无论我做什么,我都不会得到一个对我有用的例外


有人知道我能做些什么来获得关于这个问题的更多信息吗?为什么它在控制台应用程序中运行,而不是在我的IIS上运行

Windows事件日志中是否有任何信息?我至少希望IIS崩溃时会有一些日志记录。另请参见:也检查条件编译指令-打开/关闭调试会影响应用程序行为,这有点可疑。还有其他iis日志:iis日志中没有有用的信息。这样做的原因是,在执行DLL时,所有东西似乎都崩溃了。IIS甚至没有机会创建有关错误的日志。