【问题标题】:Could not load file or assembly 'someProject' or one of its dependencies. Access is denied无法加载文件或程序集“someProject”或其依赖项之一。访问被拒绝
【发布时间】:2010-10-22 23:44:02
【问题描述】:

我遇到了一个 asp.net 错误。 我的应用程序在开发和测试环境中运行良好。但是在生产中它给了我以下错误:

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

【问题讨论】:

    标签: dependencies assemblies


    【解决方案1】:

    转到 Sysinternals 并下载 Process Monitor:http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

    然后启动它,过滤掉线程和注册表操作。清除内容。运行您的应用程序并获取错误,然后在进程监视器中停止收集。现在搜索 ACCESS DENIED 状态,您将能够看到导致问题的确切文件,以及试图获得访问权限的用户帐户。

    【讨论】:

    • 我遇到了Access denied 问题,这样做让我发现问题是PATH NOT FOUND 事件,该事件针对C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\8ef518fa\1fb2943c\Backend\Backend.dll 中的某个库,所以我最终使用了这种方法:@987654322 @
    • 我的问题是访问文件夹:C:\Users\{{username}}\AppData\Local\Temp\Temporary ASP.NET Files Procmon 极大地帮助了我.. 非常感谢!
    【解决方案2】:

    只需删除 bin 文件夹,然后再复制它。现在,它正在工作......

    【讨论】:

    【解决方案3】:

    为正在运行的用户或组(如 MACHINE\users 组或 DOMAIN\domain 用户)授予完全权限

    C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET 文件

    如果不是 .net 4.0,请使用您的目标 .net 版本号而不是 v4.0.30319。

    【讨论】:

    • 这样做对我不起作用,我必须设置权限,然后删除Temporary ASP.NET Files文件夹下的所有文件夹,然后它就起作用了
    【解决方案4】:

    将新的 Web API 项目部署到我们的网络场后,我们的一个网络服务器出现故障并出现错误:

    Could not load file or assembly 'Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Access is denied.

    原来托管 Web API 站点的文件夹缺少 IIS_IUSRS 的权限。添加具有ReadRead & executeList folder contents 权限的用户可解决此问题。

    【讨论】:

      【解决方案5】:

      在我的情况下,通过将应用程序池身份从 applicationpoolidentity 更改为 network service 可以正常工作,希望这会对您有所帮助。

      【讨论】:

      • 即使我知道要检查这个,我仍然忘记...谢谢你的提醒。在我看来,这可能是最重要的一步。
      【解决方案6】:

      检查服务器用户是否有权访问程序集所在的目录。

      【讨论】:

      • 服务器用户是什么意思?
      • 你的 asp.net 应用程序正在运行的用户上下文。
      • 它实际上是集成的安全选项。当用户点击网站时。它会询问域名\用户名和密码...
      • 我相信这只是用来对用户进行身份验证。
      【解决方案7】:

      听起来像是一个错误配置的服务器。

      首先,验证程序集确实存在。

      其次,验证您的工作进程帐户是否有权访问它。

      【讨论】:

      • 我认为它存在,我部署了它。所有 dll 都在 bin 文件夹中。
      • 这只是一半。您必须验证工作进程是否可以访问它。基本上,开始检查 IIS 设置并将您的生产箱与暂存箱进行比较。
      猜你喜欢
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 2020-02-11
      • 2021-12-12
      相关资源
      最近更新 更多