IIS 7无法加载DLL(访问被拒绝)

7

我在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)。

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

2个回答

5
检查DLL文件/文件夹的权限,确保你的ASP.NET应用程序池账户可以访问该文件。
确保文件的权限不要继承自父文件夹 - 可能会有某些因素在重置这些权限。

事情是,它运行得很好一段时间,然后随机停止工作。此时权限仍然看起来很好。另外,为了测试我的ASP.NET当前正在我的用户帐户上运行,该帐户拥有该文件... - jli
2
如果您授予“Everyone”读取/执行文件/文件夹的权限,这是否会解决问题? - Leon
请看这个是否有帮助... http://blogs.msdn.com/b/sayanghosh/archive/2007/04/21/solution-to-could-not-load-file-or-assembly-or-one-of-its-dependencies-access-is-denied.aspx - Leon
我认为这个方法对所有人都有效!感谢您的帮助,我将采纳您的答案。 - jli
@Leon 我的问题是dll继承了其父级的权限,我移除了它们,现在它可以正常工作了... - franko_camron

0

也许你是在那些时间进行备份?这只是一个猜测... 另外,在你的web.config中,你不需要定义版本、文化或公钥来使用程序集...也许这与此有关。


嗯...好像没有备份,所以我猜那不是问题所在。我没有直接将它添加到web.config文件中,而是在VS中将DLL作为引用添加进去的,所以我有点怀疑版本/文化/公钥是否是问题所在,但我想这也是有可能的。 - jli
这看起来很像你正在面对的问题...试试也无妨:http://blogs.msdn.com/b/sayanghosh/archive/2007/04/21/solution-to-could-not-load-file-or-assembly-or-one-of-its-dependencies-access-is-denied.aspx - cgcarter1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接