【发布时间】:2020-01-06 21:12:09
【问题描述】:
我想在我的 .Net Core 项目中使用这个 WcfCoreMtomEncoder lib here,但我不确定如何在语法上使用它。
我在下面有这段代码,但不能使用 MessageEncoding,因为我在一个 .Net Core 项目中(不支持 mtom):
var binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport)
{
// MessageEncoding = WSMessageEncoding.Mtom, not supported in .Net Core
TransferMode = TransferMode.Streamed
};
EndpointAddress endpoint = new EndpointAddress(url);
var channelFactory = new ChannelFactory<T>(binding, endpoint);
var webService = channelFactory.CreateChannel();
user.UserName = await webService.EncryptValueAsync(userName);
user.Password = await webService.EncryptValueAsync(password);
var documentAddResult = webService.DocumentAdd(document);
channelFactory.Close();
根据我阅读的内容,我可以用下面的 library 代码替换它,我从编码器库的文档中看到,用法如下所示:
var encoding = new MtomMessageEncoderBindingElement(new TextMessageEncodingBindingElement());
var transport = new HttpTransportBindingElement();
var customBinding = new CustomBinding(encoding, transport);
var client = new MtomEnabledServiceClient(customBinding);
但我不确定这里是什么? 它将如何用于执行我想要实现的文档上传?图书馆是这样做的还是我误解了它的作用?
如果有人能给我提供一个如何使用这个库来执行文档上传的例子,我将不胜感激。
【问题讨论】:
-
在我这边,我试过了,没用,总是出现同样的错误。
-
嗨。你到底尝试了什么?也许您可以显示您的代码的 sn-p 和错误?
-
我使用 Mtom 编码器创建了一个带有 basichttpbinding 的 WCF 服务。然后我通过使用 Mtom 编码器配置自定义绑定来调用服务。我还尝试使用给定的绑定创建 WCF 服务,并使用它。此外,具有该绑定的 Channel Factory 也不起作用。我不知道类库是用来做什么的。 GitHub 的问题也还没有解决。
-
(内容类型multipart/related; type="application/xop+xml"; start="tempuri.org/0>"; boundary="uuid:b84ef9c6-0def-4900-a3cb-27d13b846c62 +id=5"; start-info="text/xml" 的响应消息与绑定的内容类型(text/xml; charset=utf-8)不匹配。如果使用自定义编码器,请确保IsContentTypeSupported 方法已正确实现。响应的前 435 个字节为: