gpt4 book ai didi

c# - 具有完全权限控制的 Windows 2008 R2 加载 DLL 失败

转载 作者:可可西里 更新时间:2023-11-01 11:56:00 31 4
gpt4 key购买 nike

我开发了一个在本地运行良好的C#应用程序。

但是我放到服务器的时候出现了问题。

应用程序在其引用 (A.dll) 中使用了一个 DLL 库,并且在执行时 A.dll 在 Temp 目录中创建了另一个 DLL(嵌入其中,我们称之为 B.dll)。但是当 A.dll 尝试加载 B.dll 时抛出异常:

system.invalidoperationexception: failed to load B.dll

我无法访问 DLL 源,是库。

回顾一下:

  • 进程对文件和路径有完全控制权限。(勾选)
  • 以管理员身份运行。 (勾选)
  • 在我的应用程序中,如果我尝试以二进制模式打开 dll,则操作没有问题。
  • 在我测试过的每个操作系统上运行良好(Windows 8_64/XP_32/2008_32/7_64),但 2008 R2 64 失败。
  • 我已尝试重新下载、重命名、重新安装 B.DLL,我已将程序放在 B.DLL 的同一路径中,等等,但没有结果。

所以在这一点上,我认为这是服务器上的安全问题,例如“进程无法加载 DLL”或类似问题。

异常: http://i.imgur.com/NmB2Fth.png?1

任何人都可以建议我任何解决方案?我会检查更好吗?在哪里?

附言如果我尝试注册 dll,我会遇到同样的错误: Register DLL file on Windows Server 2008 R2

最佳答案

解决方案很简单。

我用过一个非常有用的工具事件查看器(开始->执行->eventvwr.exe)当我启动我的应用程序时,Windows 日志-> 应用程序中显示了一个新的错误事件:

Activation context generation failed for "C:\Temp\APP\myfile.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(x86,因为我的应用程序在 32 位应用程序池中工作)

一旦安装了这个包:http://www.microsoft.com/en-us/download/details.aspx?id=5582

一切都很顺利。

我希望这能帮助任何人节省一些时间!!

关于c# - 具有完全权限控制的 Windows 2008 R2 加载 DLL 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16656982/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com