0

我一直在我的 azure 函数应用程序中使用 azure function V2(.net core 2.1)。我一直在System.ServiceModel.Primitives为我的函数 App 使用 nuget,它ServiceBusEnvironment在其中使用包。

我能够编译代码并运行该函数。调用该函数时,出现此运行时错误。

   Could not load type 'System.ServiceModel.Channels.IBindingRuntimePreferences' 
from assembly 'System.ServiceModel, Version=4.0.0.0'

我google了很多东西。但没有运气。

然后我尝试将我的天蓝色功能从 V2 降低到 V1(.net Framework 4.7),它又开始工作了。

在 V2 的情况下,我需要知道我做错了什么。在 V2 的情况下,我怎么能不得到错误?有相同的解决方案吗?

4

2 回答 2

0

Microsoft 现在已将相关程序集作为包提供在 NuGet 上。

System.ServiceModel.Primitives是基础包;如有必要,将其他人添加到您的项目中。

在此处输入图像描述

我相信如果它不是作为依赖项来加载System.ServiceModel.Channels,您需要在项目中安装它,在安装正确版本的 System.ServiceModel.Http 后查看它是否有效。**System.ServiceModel.Http**

自行将相同的“System.ServiceModel.Http”NuGet 包添加到您的应用项目中,以便正确引用它。您可以通过使用“管理 NuGet 包”菜单项或仅更新 packages.config 文件来执行此操作,例如

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="System.ServiceModel.Http" version="4.4.1" targetFramework="net461" />
  <package id="System.ServiceModel.Primitives" version="4.4.1" targetFramework="net461" />
</packages>

附加参考:

https://github.com/dotnet/wcf/issues/2546

希望能帮助到你。

于 2019-11-08T03:31:14.490 回答
0

经过大量搜索后,我找到了一个解决方案,即 azure function v2 基于 .net core 并且服务总线库与 v2(.net core) 不能很好地配合使用

我发现的唯一解决方案是切换到 V1,因为 Azure 函数 V1 支持 .net FrameWork 类。

于 2019-12-11T11:55:35.940 回答