无法加载文件或程序集或其依赖项之一。访问被拒绝

时间:2012-04-18 13:42:19

标签: .net windows-services windows-server-2008

现在我决定寻求帮助。在我的问题上进行了2天的调查后,我无法找出任何解决方案。也许我会更幸运!

所以这是我的问题:

在我们的生产服务器(Windows Server 2008)上,我们运行了一个Windows服务,负责自动运行一些作业。这些作业可通过Web应用程序进行配置,并允许用户执行以下操作: - 使用一个或多个任务创建作业(顺序任务) - 定义工作时间表(每日,每月,......) - 手动运行任务

当服务找到要运行的作业时,它会从DB检索信息并按顺序执行每个任务。要执行任务,服务会实例化一个对象对应的任务并执行它(不同类型的任务可用并位于不同的程序集中)

在我失败的情况下:

  • 位于ComponentsA.Tasks.dll中的Task1已执行。 =>成功
  • 在Task1中,位于ModuleA.Logic.dll中的MethodA()被称为=>成功
  • 在MethodA()中,位于ModuleA.Data.dll中的GetData()是calles => FAILED

此时我检索以下错误消息:

Could not load file or assembly ‘ModuleA.Data.dll’ or one of its dependencies. Access is denied.

融合日志的结束显示了这一点:

*ERR: Setup failed with hr = 0x80070005.
 ERR: Failed to complete setup of assembly (hr = 0x80070005). Probing terminated.*

所有DLL都位于服务安装文件夹的根目录下。权限似乎没问题(即使我使用管理员帐户运行服务并为我遇到问题的每个人设置完全控制权限) 注意:自星期五起,我们才会面临此严重问题。以前一切都运转正常。根据基础设施团队的说法,他们在服务器上没有任何改变......

如果你们其中任何一个人有想法,那就可以节省我的一周。 感谢

干杯 伯努瓦

2 个答案:

答案 0 :(得分:3)

想要发布其他人可能会遇到的另一个案例:

我通过在OSX上压缩生产箱并在生产箱上解压缩来更新生产服务器。

解压缩文件后,文件在资源管理器窗口中显示为绿色,我最初忽略了该文件,但表示文件已加密。

将这些文件复制到生产网站会导致E_ACCESSDENIED。解决方案是在移动之前解密 - 请参阅https://superuser.com/questions/29424/what-do-green-folders-mean-in-windows-7-explorer

一些背景:http://blogs.msdn.com/b/asklar/archive/2012/05/03/why-do-zip-files-from-mac-os-show-up-as-green-encrypted.aspx

答案 1 :(得分:0)

我成功删除了有问题的DLL(ModuleA.Data.dll)所在的文件夹并重新添加它,并使该文件从其父级继承权限。不确定问题是什么,但是确实有效。