【问题标题】:IIS 7 unable to load DLL (Access Denied)IIS 7 无法加载 DLL(拒绝访问)
【发布时间】:2011-08-18 14:43:12
【问题描述】:

我在 Windows 7 上遇到了 IIS 7 这个奇怪的问题,它无法加载我正在使用的 dll。但是,它似乎只在一段时间后发生;在它开始抛出此消息之前,它可以在一段时间内正常工作:

Could not load file or assembly 'Mono.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756' or one of its dependencies. Access is denied.

如果我删除 dll 并重新添加它,它会在一段时间内正常工作,然后再次停止工作。这在 asp.net 网页和 web 服务中都会发生,但是在普通的 .net 桌面程序中它可以正常工作。

这只发生在 Mono.Security 上,而不是我正在使用的任何其他 dll(我正在使用依赖于 Mono.Security 的 Npgsql)。

如果有人能对此提供一些见解,那就太好了。

【问题讨论】:

    标签: asp.net web-services iis mono npgsql


    【解决方案1】:

    检查 DLL 文件/文件夹的文件权限,以确保您的 ASP.NET AppPool 帐户可以访问该文件。

    确保文件的权限从父级继承 - 可能会重置这些权限。

    【讨论】:

    • 问题是,它可以正常工作一段时间,然后随机停止工作。那时权限看起来仍然很好。另外,只是为了测试我的 ASP.NET 目前正在我的用户帐户上运行,该帐户拥有该文件...
    • 如果您授予“所有人”对文件/文件夹的读取/执行权限,这是否会使问题消失?
    • 认为每个人都成功了!为了获得帮助,我将您的答案作为已接受的答案。
    • @Leon 我的问题是 dll 从它的父级获得了权限,我删除了它们,瞧!它现在正在工作......
    【解决方案2】:

    也许您在那些时候正在执行备份?只是在黑暗中拍摄... 此外,在您的 web.config 中,您无需定义版本、文化或公钥即可使用程序集。也许这与它有关。

    【讨论】:

    • 嗯.. 没有进行备份,所以我猜不是这样。我没有直接将它添加到 web.config 文件中,我在 VS 中添加了 DLL 作为参考,所以我怀疑版本/文化/pk 是问题,但我想它可能。
    • 这看起来很像你所面临的......试一试也无妨:blogs.msdn.com/b/sayanghosh/archive/2007/04/21/…
    猜你喜欢
    • 2012-10-03
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多