c# - WCF 服务无法从 GAC 加载引用的程序集

标签 c# .net visual-studio wcf iis

我有一个 WCF 服务,托管在 IIS 中,它是在 Visual Studio 中构建的。 WCF 服务库引用了一些其他程序集,它们是同一 Visual Studio 解决方案的一部分。

我将所有程序集部署到 GAC,然后启动服务客户端,发现它无法尝试解析其中一个引用的客户端程序集。我在 WCF 服务构造函数中添加了一个断点,它似乎没有尝试使用限定名称加载其引用的程序集(因此在 GAC 中找不到它们)。如果我在即时窗口中运行 Assembly.Load,一旦进入 IIS 中的 WCF 构造器,我就可以使用限定的(publickeytoken 等)名称加载每个丢失的 dll。

为什么 CLR 或我的服务库尝试仅使用名称加载库?

最佳答案

尝试使用以下内容更新 IIS 网络应用程序 web.config

<compilation debug="true">
      <assemblies>
        <add assembly="MyWcfAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=AAAAAAAAAA"/>

根据我的经验,当 dll 未复制到本地并且需要从 GAC 读取时,有时需要这样做。

您还需要为您的网页重新加载您的应用程序域,以使用安装到您的 GAC 中的最新程序集。您可以通过执行 iisreset、触摸 web.config 或 iis 管理器来重新加载您的应用程序域。

关于c# - WCF 服务无法从 GAC 加载引用的程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1487218/

相关文章:

c# - 如何将字节数组(即 byte[])保存到 Azure Blob 存储?

c# - 如何使用数据库检索日期设置raddatepicker日期

.net - 检查节点是否存在报错 "Expression must evaluate to a node-set"如何解决?

c# - 仅在特定机器上调用 Web 服务时出现 401

c# - 如何将 C++ unsigned char* 转换为 C#?

c++ - 自定义分配器仅在 VS 2015 中以 Release模式编译

c# - 指定内容的构建操作 - Nuget

c# - 在 Visual Studio 中查看变量的地址位置

c# - FluentFTP - 连接 "Timed out trying to read data from the socket stream!"时出错

c# - C# Interactive 中对象的自定义打印