.Net Core呼叫所有" old" WCF可能吗?

时间:2017-06-27 09:02:50

标签: wcf .net-core

我想我会试用.Net Core(v1.1.2),我想知道的一件事是,是否可以调用用.Net Framework 4.5.2编写的WCF服务。我正在使用Visual Studio 2017并安装了Microsoft WCF Web Service Reference Provider(版本0.5.10428.1201)。当我运行它时,它找到了服务,但在尝试生成代码时收到了此错误消息:

  

脚手架代码......   错误:警告:不支持的邮件编码值:' Mtom'。它一定是' Text'。   警告:不支持的消息编码元素类型:' System.ServiceModel.Channels.MtomMessageEncodingBindingElement'。它必须是以下类型之一:' System.ServiceModel.Channels.BinaryMessageEncodingBindingElement',' System.ServiceModel.Channels.TextMessageEncodingBindingElement。'   警告:端点' WSHttpBinding_IDocumentSignService'在地址' http://xxxxxxxxxxxxx.svc'包含一个或多个与.Net Core应用程序不兼容的绑定,跳过...   错误:找不到与.Net Core应用程序兼容的端点。   无法生成服务参考。

(我将网址编辑为http://xxxxxxxxxxxx.svc

这是否意味着.Net Core应用程序无法调用所有WCF服务?它只支持某个子集吗?因此,如果我陷入WCF服务的世界,我将不得不远离.Net Core?或者只是工具的问题?

我意识到之前可能已经提到过,但我找不到明确的答案。

1 个答案:

答案 0 :(得分:1)

正如panagiotis的评论所解释的那样,您正在使用MTOM编码来使用SOAP服务(.net Core不支持) 尽管如此,只要不在WS *绑定上进行中继,消费WCF服务在.Net核心中运行良好。 extra info here

我也因使用MTOM编码的SOAP服务而遇到麻烦。 I explain how I fixed it here