【发布时间】:2023-10-16 17:53:01
【问题描述】:
前言:我们有负载平衡的 Web 服务器,以及一个安静的 wcf api Web 应用程序。 在我们的 Web 应用程序中,我们通过 nuget 包或其他 Visual Studio 项目添加了几个引用。上周我添加了一个新项目(PLEGateway),它是我们系统中的一个数据层,以及一些对第 3 方系统的 API 调用。 代码 (bin) 发布到文件服务器,并具有适当的权限,因此 Web 服务器可以看到它。
部署后,我遇到了可怕的 无法加载文件或程序集“PLEGatewayCore,Version=1.0.0.6,Culture=neutral,PublicKeyToken=null”或其依赖项之一。访问被拒绝。错误。
奇怪的是,它似乎只是间歇性地抛出这个错误。这意味着它会起作用,过一会儿回来再试一次,它会失败。稍等片刻,回来,它会突然工作。 “awhile”的定义从 5 分钟到一夜之间,所以只是尝试通过邮递员随机执行它。
我浏览了谷歌和其他关于这个问题的 SO 问题,它们似乎都指向临时 asp.net 文件夹的权限问题。我验证权限设置正确。为 32 位应用程序启用了应用程序池IS。 Web 应用程序中的所有其他方法都有效,只有那些引用此 dll 中的任何函数的方法才会导致错误。
我终于开始查看此应用程序池的 W3wp.exe 文件的进程资源管理器,当我查看 .NET 程序集选项卡时,一台服务器已加载我的 dll,而另一台服务器在查看非共享时没有应用域部分。
总的来说,我的问题是:为什么一台服务器加载 dll,而另一台服务器不加载,而他们的 IIS 配置也从同一位置(共享配置)提取?
【问题讨论】:
-
我是否正确理解两个网络服务器都指向另一个服务器,即具有 de bin 文件夹和其他网站文件的文件服务器?
-
是的,两个 Web 服务器都指向另一个服务器,即文件服务器。
标签: .net dll iis-7.5 access-denied