当代码部署在Windows Server 2003框中的IIS 6.0上时,LoadLibraryEx在c#中返回0

时间:2013-01-04 20:47:51

标签: c# iis iis-7 iis-6

在我的Web服务代码部署在Windows Server 2003上的IIS 6.0上之后,我得到LoadLibraryEx的返回值为“0”。我在Windows XP(本地)中有原始代码,它工作正常,而不是 为此LoadLibraryEx返回0。我完全感到困惑,不知道为什么它在IIS 6.0上部署时会返回零。

IntPtr handle = LoadLibraryEx(dllFullPath,IntPtr.Zero,0x00000008);

当我使用Marshal.GetLastWin32Error()

时返回值为14001

1 个答案:

答案 0 :(得分:2)

该错误为ERROR_SXS_CANT_GEN_ACTCTX

  

应用程序无法启动,因为它的并排配置不正确。请参阅应用程序事件日志或使用命令行sxstrace.exe工具获取更多详细信息。

在您的方案中使用sxstrace.exe可能有点棘手。当然值得检查事件日志以查看它们是否包含线索。

我的猜测是问题框缺少相应的MSVC运行时。确保部署了您尝试加载的DLL使用的MSVC运行时。在尝试调试问题之前,首先要尝试这一点。