.Net Core 中的 Http 绑定使用带有 wcf 引用的库项目
Posted
技术标签:
【中文标题】.Net Core 中的 Http 绑定使用带有 wcf 引用的库项目【英文标题】:Http Bindings in .Net Core consuming a Library Project with wcf reference 【发布时间】:2021-07-29 05:11:18 【问题描述】:我的 .net core 3.1 项目引用了一个在 .Net Framework 3.5 中构建的类库项目。 库项目有一个 wcf 服务引用,其绑定在 app.config 中定义。
在 dotnet 框架中,我们通常在消费项目中提供 http 绑定。
当我尝试在 dotnet core(使用项目)的 app.config 中手动添加服务绑定时,我收到此错误 - “无法识别的配置部分 system.serviceModel”
有什么方法可以在引用库项目的项目中提供 http 绑定。
更新 1
这是我在 dotnet 核心项目中的 app.config -
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="username" value="usr"/>
<add key="password" value="pass"/>
<add key="logPath" value="c:\test\api_log.txt"/>
</appSettings>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="ListManagementSoap">
<security mode="Transport" />
</binding>
<binding name="ListManagementSoap1" />
<binding name="ContactManagementSoap">
<security mode="Transport" />
</binding>
<binding name="ContactManagementSoap1" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://ws.caigners.com/listmanagement.asmx"
binding="basicHttpBinding" bindingConfiguration="ListManagementSoap"
contract="ListManagementAPI.ListManagementSoap" name="ListManagementSoap" />
<endpoint address="https://ws.caigners.com/contactmanagement.asmx"
binding="basicHttpBinding" bindingConfiguration="ContactManagementSoap"
contract="ContactManagementAPI.ContactManagementSoap" name="ContactManagementSoap" />
</client>
</system.serviceModel>
</configuration>
【问题讨论】:
【参考方案1】:目前.net core不支持创建WCF服务,但是可以在.net core中创建WCF客户端来调用WCF服务。虽然您可以在 .net core 中调用 WCF 服务,但它受到一些限制。 .net core 中的 WCF 客户端只支持四种绑定:BasicHttpBinding、CustomBinding、NetHttpBinding、NetTcpBinding,.net Core 中的安全特性并不多。
如果要识别system.serviceModel,需要安装System.ServiceModel.Http。有关它的更多信息,您可以参考这个link。
【讨论】:
我尝试添加“System.ServiceModel.Http”nuget 包。我仍然收到“无法识别的配置部分 system.serviceModel”错误。我已经用我的 app.config 更新了 OP。 这可能是因为 System.ServiceModel.Http 不包含 system.serviceModel 节点。我建议你使用 .net 框架。 是的,我不得不绕过它并将 dotnet 框架 3.5(WCF 消费项目)重写为核心 3.1。这是一个漫长而乏味的工作,但完成了工作。谢谢:)以上是关于.Net Core 中的 Http 绑定使用带有 wcf 引用的库项目的主要内容,如果未能解决你的问题,请参考以下文章
.NET Core MVC - 带有前缀绑定的 AJAX POST 请求