wcf soap 1.1_如何在ASP.Net Core中使用WCF SOAP服务

wcf soap 1.1

在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. 单击确定。
创建一个WCF肥皂服务 IDG

图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项目。

  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. 单击确定。
创建休息服务 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服务参考”窗口中,按照下图3所示指定SOAP服务的URI。
  5. 点击下一步。
  6. 在下一个窗口中,您可以指定数据类型选项。 我们将在此处跳过该步骤。
  7. 点击下一步。
  8. 在下一个窗口中,您可以指定访问级别。 使其公开(默认)。
  9. 单击完成。
配置WCF Web服务参考 IDG

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

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

已添加连接服务 IDG

图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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值