如何在ASP.Net Core中使用WCF SOAP服务

在REST API出现之前,SOAP(简单对象访问协议)是基于Web服务的事实上的标准协议。 在ASP.Net Core中工作时,您可能会遇到从第三方或外部服务(使用SOAP作为协议并使用XML作为消息交换格式)使用数据的需求。

在本文中,我们将探讨如何在ASP.Net Core中使用WCF(Windows Communication Foundation)SOAP服务。

[ Visual Studio Code入门 ,Microsoft的轻量级编辑器,适用于Windows,MacOS和Linux。 •了解最新版本的Visual Studio Code中的新增功能 。 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

在Visual Studio 2017中创建WCF SOAP服务

WCF是一个安全,可靠且可扩展的消息传递平台,它提供了用于在.Net中开发面向服务的应用程序的统一编程模型。 您可以利用WCF来构建SOAP服务(使用XML作为消息交换格式)或REST服务(使用JSON作为消息交换格式)。

在本节中,我们将创建WCF SOAP服务。 我们将在下一部分中创建的ASP.Net Core应用程序使用此服务。 请按照以下步骤在Visual Studio 2017中创建WCF SOAP服务。

  1. 启动Visual Studio 2017 IDE。
  2. 单击文件>新建>项目。
  3. 从左窗格中显示的项目模板列表中选择WCF。
  4. 从右窗格中选择“ WCF服务应用程序”。
  5. 为您的WCF服务项目指定一个名称。
  6. 单击确定。
如何在ASP.Net Core中使用WCF SOAP服务_第1张图片 IDG

图1:在Visual Studio 2017中创建WCF SOAP服务。

WCF服务由以下部分组成:

  • 服务等级
  • 服务合同
  • 一份或多份经营合同
  • 一个或多个端点
  • 托管环境

使用WCF时,首先需要创建服务合同,然后在其中定义服务操作或操作合同。 服务合同用于指定服务客户端可以使用的操作。 (您可以从本文了解有关WCF服务的更多信息 。)

这是包含一种服务方法的服务合同。

[ServiceContract]
    public interface IAuthorService
    {
        [OperationContract]
        List GetAuthorNames();
    }

注意在GetAuthorNames方法上使用OperationContract属性。 服务类AuthorService实现IAuthorService接口。 这是组成AuthorService类的代码。

public class AuthorService : IAuthorService
    {
        public List GetAuthorNames()
        {
            List lstAuthors = new List();
            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项目。

  1. 在Visual Studio 2017中,单击文件>新建>项目。
  2. 选择“ ASP.Net Core Web应用程序”项目模板。
  3. 指定项目的名称和位置。
  4. 单击确定。
  5. 在“新建ASP.Net Core Web应用程序”对话框窗口中,选择.Net Core。
  6. 选择ASP.Net Core 2.1作为项目​​的版本。
  7. 选择“ Web API”作为项目模板。
  8. 取消选中“启用Docker支持”和“配置HTTPS”复选框,因为这里我们不需要它们。
  9. 确保显示消息“无身份验证”; 我们也不需要身份验证。
  10. 单击确定。
如何在ASP.Net Core中使用WCF SOAP服务_第2张图片 IDG

图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服务。

  1. 在“解决方案资源管理器”窗口中,选择ASP.Net Core Web API项目。
  2. 右键单击并选择添加>连接的服务。
  3. 单击“ Microsoft WCF Web服务参考提供程序”,然后等待“配置WCF Web服务参考”向导打开。
  4. 在“配置WCF Web服务参考”窗口中,在中指定SOAP服务的URI,如下图3所示。
  5. 点击下一步。
  6. 在下一个窗口中,您可以指定数据类型选项。 我们将在此处跳过该步骤。
  7. 点击下一步。
  8. 在下一个窗口中,您可以指定访问级别。 使其公开(默认)。
  9. 单击完成。
如何在ASP.Net Core中使用WCF SOAP服务_第3张图片 IDG

图3:在ASP.Net Core中配置连接的服务。

在一系列自动化步骤中,Visual Studio将从我们之前指定的SOAP服务下载元数据,生成服务参考代码,并将代码存储在Connected Services节点内名为Reference.cs的文件中。 还将安装必要的软件包,并相应地更新项目文件。

如何在ASP.Net Core中使用WCF SOAP服务_第4张图片 IDG

图4:WCF SOAP服务参考已添加到ASP.Net Core Web API项目中。

就是这样! 现在,您可以使用以下代码实例化服务客户端,并在控制器方法中使用SOAP服务。

[HttpGet]
        public async Task 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存储服务。 我们将在后面的文章中探讨此选项。

From: https://www.infoworld.com/article/3323584/how-to-consume-a-wcf-soap-service-in-aspnet-core.html

你可能感兴趣的:(运维,操作系统,json)