【问题标题】:Error: 'Could not load file or assembly 'System.ServiceModel, Version=4.0.0.0' after deploying Function to Azure错误:将 Function 部署到 Azure 后,无法加载文件或程序集“System.ServiceModel,版本 = 4.0.0.0”
【发布时间】:2020-04-28 08:13:20
【问题描述】:

我使用 Azure v1 函数(C#、.NET Framework 4.6.1)来调用外部 WCF 服务,并且为了使其工作,我添加了对 System.ServiceModel 程序集的引用。这在我的本地开发机器上运行良好,但在将功能部署到 Azure 后,我收到以下错误:

错误:无法加载一种或多种请求的类型。无法加载文件或程序集“System.ServiceModel,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”。系统找不到指定的文件。

我尝试使用应用服务编辑器将 dll 作为本地副本/直接添加到实时二进制文件中,但这导致了另一个错误:

...(如上) 不应加载引用程序集以供执行。它们只能在仅反射加载器上下文中加载。

当我删除程序集引用并改为安装 nuget 包 System.ServiceModel.Primitives 时,会发生同样的错误。

【问题讨论】:

    标签: azure function wcf service-model


    【解决方案1】:

    您应该检查/尝试的几件事:

    1-FUNCTIONS_EXTENSION_VERSION 默认值为“~2”。确保你有“~1”。更多信息:https://docs.microsoft.com/en-us/azure/azure-functions/functions-app-settings#functions_worker_runtime

    1.1-如果上述方法不起作用,您可以考虑将 Azure Function 放入容器中,然后您就可以指定/部署依赖项:https://docs.microsoft.com/en-us/azure/devops/pipelines/targets/function-app-container?view=azure-devops&tabs=yaml

    1.2-上面可能很复杂,所以作为一个简化版本,你可以保留 Azure Function 作为触发机制,并将所有业务逻辑移动到一个 Azure Container Instance,在那里你可以更好地控制你的依赖关系应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多