wcf soap 1.1
在REST API出现之前,SOAP(简单对象访问协议)是Web服务所基于的事实上的标准协议。 在ASP.Net Core中工作时,您可能会遇到从第三方或外部服务(使用SOAP作为协议并使用XML作为消息交换格式)使用数据的需求。
在本文中,我们将探讨如何在ASP.Net Core中使用WCF(Windows Communication Foundation)SOAP服务。
在Visual Studio 2017中创建WCF SOAP服务
WCF是一个安全,可靠且可扩展的消息传递平台,它为在.Net中开发面向服务的应用程序提供了统一的编程模型。 您可以利用WCF来构建SOAP服务(使用XML作为消息交换格式)或REST服务(使用JSON作为消息交换格式)。
在本节中,我们将创建WCF SOAP服务。 我们将在下一部分中创建的ASP.Net Core应用程序使用此服务。 请按照以下步骤在Visual Studio 2017中创建WCF SOAP服务。
- 启动Visual Studio 2017 IDE。
- 单击文件>新建>项目。
- 从左窗格中显示的项目模板列表中选择WCF。
- 从右窗格中选择“ WCF服务应用程序”。
- 为WCF服务项目指定一个名称。
- 单击确定。
![创建一个WCF肥皂服务](https://i-blog.csdnimg.cn/blog_migrate/70df89ae9fc947efbdc0cbf0788b4271.png)
图1:在Visual Studio 2017中创建WCF SOAP服务。
WCF服务由以下部分组成:
- 服务等级
- 服务合约
- 一份或多份经营合同
- 一个或多个端点
- 托管环境
使用WCF时,首先需要创建服务合同,然后在其中定义服务操作或操作合同。 服务合同用于指定服务客户端可以使用的操作。 (您可以从本文了解有关WCF服务的更多信息 。)
这是包含一种服务方法的服务合同。
[ServiceContract]
public interface IAuthorService
{
[OperationContract]
List<string> GetAuthorNames();
}
注意在GetAuthorNames方法上使用OperationContract属性。 服务类AuthorService实现IAuthorService接口。 这是组成AuthorService类的代码。
public class AuthorService : IAuthorService
{
public List<string> GetAuthorNames()
{
List<string> lstAuthors = new List<string>();
lstAuthors.Add("Joydip Kanjilal");
lstAuthors.Add("Steve Smith");
lstAuthors.Add("Michael Stevens");
return lstAuthors;
}
}
这就是在WCF中构建简单的SOAP服务所需要做的一切。 现在,您可以打开Web浏览器并测试服务。
在Visual Studio 2017中创建ASP.Net Core Web API项目
在本节中,我们将创建ASP.Net Core Web API应用程序。 这将是一个基于REST的Web API。 请按照下面概述的步骤在Visual Studio 2017中创建一个新的ASP.Net Core项目。
- 在Visual Studio 2017中,单击文件>新建>项目。
- 选择“ ASP.Net Core Web应用程序”项目模板。
- 指定项目的名称和位置。
- 单击确定。
- 在“新建ASP.Net Core Web应用程序”对话框窗口中,选择.Net Core。
- 选择ASP.Net Core 2.1作为项目的版本。
- 选择“ Web API”作为项目模板。
- 取消选中“启用Docker支持”和“配置HTTPS”复选框,因为我们在这里不需要它们。
- 确保显示消息“无身份验证”; 我们也不需要身份验证。
- 单击确定。
![创建休息服务](https://i-blog.csdnimg.cn/blog_migrate/c40c4126b6694129dbf323a838a3b46a.png)
图2:在Visual Studio 2017中创建ASP.Net Core Web API应用程序。
这将创建一个新的ASP.NET Core Web API应用程序。 到目前为止,一切都很好。 在下一节中,我们将研究如何使用SOAP服务。
在ASP.Net Core中使用SOAP服务
与传统的ASP.Net不同,ASP.Net Core没有“添加服务引用”选项,该选项允许我们将外部服务引用添加为连接的服务。 要使用我们之前创建的SOAP服务,我们可以利用Microsoft WCF Web服务引用提供程序。 请按照以下步骤添加连接的服务,并使用此提供程序来引用SOAP服务。
- 在“解决方案资源管理器”窗口中,选择“ ASP.Net Core Web API”项目。
- 右键单击并选择添加>连接的服务。
- 单击“ Microsoft WCF Web服务参考提供程序”,然后等待“配置WCF Web服务参考”向导打开。
- 在“配置WCF Web服务参考”窗口中,按照下图3所示指定SOAP服务的URI。
- 点击下一步。
- 在下一个窗口中,您可以指定数据类型选项。 我们将在此处跳过该步骤。
- 点击下一步。
- 在下一个窗口中,您可以指定访问级别。 使其公开(默认)。
- 单击完成。
![配置WCF Web服务参考](https://i-blog.csdnimg.cn/blog_migrate/90a3097a0bb1e3db8f5604c72bad2ced.png)
图3:在ASP.Net Core中配置连接的服务。
在一系列自动化步骤中,Visual Studio将从我们之前指定的SOAP服务下载元数据,生成服务参考代码,并将代码存储在Connected Services节点内名为Reference.cs的文件中。 还将安装必要的软件包,并相应地更新项目文件。
![已添加连接服务](https://i-blog.csdnimg.cn/blog_migrate/b0548da604e89cb65f089234df7b995a.png)
图4:WCF SOAP服务参考已添加到ASP.Net Core Web API项目中。
就是这样! 现在,您可以使用以下代码实例化服务客户端,并在控制器方法中使用SOAP服务。
[HttpGet]
public async Task<string[]> Get()
{
ServiceReference1.AuthorServiceClient authorServiceClient = new ServiceReference1.AuthorServiceClient();
var data = await authorServiceClient.GetAuthorNamesAsync();
return data;
}
WCF Connected Service是Visual Studio中的扩展,允许您在ASP.Net Core应用程序中为使用WCF生成的服务生成SOAP服务引用。 您还可以利用ASP.Net Core中的连接服务来连接到Azure存储服务。 我们将在后面的文章中探讨此选项。
翻译自: https://www.infoworld.com/article/3323584/how-to-consume-a-wcf-soap-service-in-aspnet-core.html
wcf soap 1.1