【发布时间】:2020-01-22 01:06:39
【问题描述】:
我正在尝试将文档发送到 .Net Core 应用程序中的 Web 服务。但我了解到.Net Core 不支持“MTOM”
WSMessageEncoding.Mtom
所以我找到了这个WcfCoreMtomEncoder 库,并认为我可以让它工作!??也许不是……?
这是我在 .Net Core 之前所拥有的
BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
var binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport)
{
MessageEncoding = WSMessageEncoding.Mtom,
TransferMode = TransferMode.Streamed
};
EndpointAddress endpoint = new EndpointAddress(url);
ChannelFactory<T> channelFactory = new ChannelFactory<T>(binding, endpoint);
var webService = channelFactory.CreateChannel();
这是我放入图书馆后的东西
var encoding = new MtomMessageEncoderBindingElement(new TextMessageEncodingBindingElement());
var transport = new HttpTransportBindingElement();
transport.TransferMode = TransferMode.Streamed;
var binding = new CustomBinding(encoding, transport);
EndpointAddress endpoint = new EndpointAddress(url);
ChannelFactory<T> channelFactory = new ChannelFactory<T>(binding, endpoint);
var webService = channelFactory.CreateChannel();
但是我在创建频道时遇到了这个异常
提供的 URI 方案“https”无效;预期为“http”
根据这个SO link我需要将安全模式设置为传输
问题 - 如何在这个WcfCoreMtomEncoder 库中将安全模式设置为传输? 我查看了一些“HttpTransportBindingElement”属性,但并没有真正看到要设置的属性。
【问题讨论】:
标签: c# wcf wcf-binding wcf-security wcfcoremtomencoder