未能在具有完全权限控制的Windows 2008 R2中加载DLL
我开发了一个在本地运行得非常好的C#应用程序。
但是当我穿上服务器时出现问题。
应用程序在其引用(A.dll)中使用DLL库,并在A.dll在Temp目录中创建另一个DLL(嵌入其中,让我们称之为B.dll)的执行点中。 但是,当A.dll尝试加载B.dll时,会抛出一个异常:
system.invalidoperationexception: failed to load B.dll
我没有访问DLL的来源,是库。
所以回顾一下:
所以在这一点上,我认为这是服务器上的安全问题,如“进程无法加载DLL”或类似的东西。
例外:http://i.imgur.com/NmB2Fth.png?1
任何人都可以向我建议任何解 我会检查更好吗? 哪里?
PS如果我尝试注册DLL我得到了同样的错误:在Windows Server 2008 R2上注册DLL文件
解决方案很简单。
我使用了一个非常有用的工具,名为事件查看器 (开始 - >执行 - > eventvwr.exe)当我启动我的应用程序时,Windows日志 - >应用程序中显示新的错误事件:
Activation context generation failed for "C:TempAPPmyfile.dll".
Dependent Assembly Microsoft.VC90.CRT,processorArchitecture="x86",
publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" could not be found.
Please use sxstrace.exe for detailed diagnosis.
快速搜索和结果是服务器需要Visual C++ Runtime for x86
的Visual C++ Runtime for x86
(x86,因为我的应用程序在32位应用程序池中工作)
一旦安装了这个软件包:http://www.microsoft.com/en-us/download/details.aspx?id=5582
一切都像魅力一样工作。
我希望这会帮助任何人节省一些时间!
链接地址: http://www.djcxy.com/p/44459.html上一篇: Fail to load DLL in Windows 2008 R2 having full permissions control
下一篇: Using DllImport to load unmanaged dll into managed application