.NET Core 中的 SOAP?

问题描述 投票:0回答:7

如何在 .NET Core 中使用 SOAP? .Net Core 中是否有 Apache CXF 的等效项(不仅仅是简单的 SOAP 客户端,而是全功能堆栈)?

抱歉,如果这是一个非常基本的问题,到目前为止我的搜索没有给出任何明确的答案。

c# .net web-services soap .net-core
7个回答
14
投票

Microsoft 目前不打算为 .NET Core 提供 SOAP 服务器端框架。 WCF ServiceHost 和 ASMX 都不可用。判断哪些非 Microsoft 堆栈将加入并成为主导者还为时过早。

随着 ASP.NET Web API 的引入和 REST 端点的兴起,WCF 已经消亡。 WCF 客户端是一个互操作故事,而不是一个前瞻性故事(完整故事在这里:http://blog.tonysneed.com/2016/01/06/wcf-is-dead-long-live-mvc-6/ )


6
投票

在 VS 2017 中,自 2017 年 12 月 (v15.5) 起,您现在可以使用连接服务将生成的 WCF 客户端添加到使用 .NET Standard 项目中的 WSDL 的服务中。在解决方案资源管理器中,您可以通过右键单击“依赖项”或右键单击“添加...”下的项目来到达那里


6
投票

几个月前,由于 WCF 客户端的限制(在与 Java Web 服务集成时,有人创建了一个与方法同名且位于同一命名空间中的响应类,当 WCF 客户端发送请求时,它失败了)序列化 - 在 SO 中找不到相关问题)我必须创建一个 SOAP HTTP 客户端,该客户端使用下划线 HttpClient。我最终发布了一个开源版本 (https://github.com/gravity00/SimpleSOAPClient),我们已在生产中成功使用该版本,并支持 .NET Core 和 Xamarin 应用程序。请随意尝试一下。我推荐版本 2.0.0-RC03,因为自版本 1.x 以来有一些重大改进。


1
投票

这里有一个小技巧,我在 ASP.Net 5.0 Web 应用程序中使用了定位“framework 452”

不幸的是,新的“添加连接的服务”->“WCF 服务”仅在定位“.Net Core”时才有效,因此我创建了一个与我的网络应用程序同名的基本控制台应用程序。

控制台应用程序允许添加“服务参考”。添加后,VS2015会在文件夹“服务引用”中创建所有服务引用。

只需将文件夹内容移动到 Web 解决方案并使用接受

HttpBindings
EndPoint
参数的客户端构造函数。

在我的例子中,我连接到 Echosign 服务初始化客户端,如下所示:

using (EchoSignDocumentService16PortTypeClient service = new EchoSignDocumentService16PortTypeClient(new BasicHttpBinding(BasicHttpSecurityMode.Transport), new EndpointAddress(adddress)))
{
...
}

1
投票

我的旧客户端需要 SOAP,因此我使用 .NET 框架创建了一个与旧客户端兼容的单独 SOAP 库,托管在单独的环境中。 (SOAP.mywebsite.com)。然后在www.mywebsite.com(使用asp.net Core创建)上,我有一个rest接口。SOAP层调用rest接口。 调用其余接口的库是使用 Swashbuckle 生成的。


0
投票

为了解决这个问题......我在 .Net 4.5 中创建了一个 nuget 包,连接到 .NET Core 不支持的本机 SOAP 客户端。接下来,我创建了一个针对 .net 框架的 .Net core 应用程序。这使我能够毫无错误地使用 nuget 包。


0
投票

现在可以通过 CoreWCF 实现这一点。参见:

告示

GitHub 存储库

© www.soinside.com 2019 - 2024. All rights reserved.