C# WebService创建、发布、调用的实例讲解

C# WebService 创建、发布、调用的实例讲解

本文将为您详细介绍C# WebService创建、发布、调用的完整攻略,包括以下步骤:

1.创建WebService
2.发布WebService
3.调用WebService

1. 创建WebService

要创建一个C# WebService,首先需要在Visual Studio中创建一个Web项目,步骤如下:

1.在Visual Studio中,选择“新建项目”。
2.在“新建项目”窗口中,选择“Web”节点。
3.选择“ASP.NET Web 应用程序”,设置好项目名称和路径,点击“确定”。
4.在“新建应用程序”窗口中,选择“Web 站点”模板,点击“确定”。
5.在“新建网站”窗口中,选择“XML Web Service”模板,点击“确定”。

当创建完毕后,Visual Studio会自动创建一个名为“Service1.asmx”的文件,这个文件就是WebService的主文件。在这个文件中,我们可以定义我们需要的方法和服务,以下是一个示例代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService {
    [WebMethod]
    public string HelloWorld() {
        return "Hello World!";
    }
}

上述代码中,我们定义了一个名为“HelloWorld”的方法,此方法返回一个字符串“Hello World!”。在代码中,我们加入了WebService的特性,如“[WebService]”、“[WebMethod]”等,WebMethod标记中“EnableSession”可以指定是否启用会话。

2. 发布WebService

发布WebService后,才能被客户端调用。发布WebService的步骤如下:

1.右击“Service1.asmx”,选择“发布网站”。
2.选择“本地IIS”选项,设置好路径,点击“确定”即可。

我们发布完毕后,WebService的URL地址就可以通过IIS或者浏览器进行访问,例如:http://localhost/Service1.asmx。当我们在浏览器中运行该地址时,如果页面返回了“描述性错误信息”,说明WebService已经被成功发布到服务器上。

3. 调用WebService

通过WebService的URL地址访问服务,可以获得服务提供的Web方法的列表,例如访问 http://localhost/Service1.asmx 会得到该WebService的所有方法。我们可以使用以下示例代码调用已经发布的WebService:

using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.Serialization;
using System.Net;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string url = @"http://localhost/Service1.asmx";
            string requestData = string.Format(
            @"<soapenv:Envelope xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:tem=""http://tempuri.org/"">
                <soapenv:Header/>
                <soapenv:Body>
                    <tem:HelloWorld/>
                </soapenv:Body>
             </soapenv:Envelope>");

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.ContentType = "text/xml; charset=utf-8";
            request.Headers.Add("SOAPAction", "\"http://tempuri.org/HelloWorld\"");
            request.ContentLength = requestData.Length;

            using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
            {
                writer.Write(requestData);
            }

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
            string responseString = reader.ReadToEnd();
            Console.WriteLine(responseString);
            Console.ReadKey();
        }
    }
}

上述代码中,我们使用HttpWebRequest对象来发送请求,Content部分通过字符串输出,必须按照特定的格式,Content-Type设为“text/xml”,SOAPAction需要指定方法名,Content-Length设置为字符串长度。调用的时候,我们直接使用HttpWebResponse对象得到返回的结果并输出。

示例二

我们也可以使用Visual Studio工具调用WebService,操作步骤如下:

1.在Visual Studio中,选择“项目”->“添加服务引用”。
2.输入已发布WebService的URL地址,点击“使用服务”。
3.在“添加服务引用”窗口中,选择需要引用的服务,设置好所需的名称和相关信息,点击“确定”。

引用完成之后,在项目中会增加一个Web服务的引用。我们通过示例调用这个引用:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ConsoleApplication1.TestServiceReference;  //引用服务

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            TestServiceReference.Service1SoapClient client = new TestServiceReference.Service1SoapClient();
            string result = client.HelloWorld();
            Console.WriteLine(result);
            Console.ReadKey();
        }
    }
}

上述代码中,我们使用添加服务引用的方式引用了已经发布的WebService,在代码中直接使用这个引用来调用其中的Web方法。

至此,我们已经为您介绍了C# WebService创建、发布、调用的完整攻略,包括创建和发布WebService的详细步骤,以及两个调用示例,希望能够对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# WebService创建、发布、调用的实例讲解 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • C#连接数据库和更新数据库的方法

    连接数据库: C#中连接数据库需要使用System.Data.dll库中的SqlConnection对象来进行访问,如下所示: using System.Data.SqlClient; //连接数据库 string connStr = @"Data Source=YOUR_SERVER_NAME;Initial Catalog=YOUR_DATAB…

    C# 2023年6月1日
    00
  • 实现.Net7下数据库定时检查的方法详解

    以下是关于“实现.Net7下数据库定时检查的方法详解”的完整攻略: 1. 什么是数据库定时检查? 数据库定时检查是指定期检查数据库中的数据,以确数据完整性和一致性。这通常涉及到检查数据的有效性、完整性、一致性和准确性等方面。 2. 如何实现数据库定时检查? 要实现数据库定时检查,按照以下步骤: 2.1. 创建定时任务 首先,我们需要创建一个定时任务,以便定期…

    C# 2023年5月12日
    00
  • C#中各种泛型集合的使用方法总结

    下面是一份“C#中各种泛型集合的使用方法总结”的完整攻略。 1. 概述 在C#中,泛型集合是非常常用的数据结构,它们可以帮助我们有效地管理和操作我们的数据,提高我们的开发效率。常用的泛型集合包括List、Dictionary、Queue、Stack等等。在本文中,我们将对这些常用的泛型集合进行总结和介绍。 2. List 2.1 简介 List是我们最常用的…

    C# 2023年5月15日
    00
  • C#如何将DataTable导出到Excel解决方案

    下面是“C#如何将DataTable导出到Excel解决方案”的完整攻略。 1. 使用官方Office Interop库 首先,我们可以使用官方的Office Interop库来实现将DataTable导出到Excel。以下示例代码演示了如何使用Office Interop库。 using Microsoft.Office.Interop.Excel; //…

    C# 2023年5月31日
    00
  • 深入解析.NET 许可证编译器 (Lc.exe) 的原理与源代码剖析

    深入解析.NET 许可证编译器 (Lc.exe) 的原理与源代码剖析 简介 .NET 许可证编译器 (Lc.exe) 是 Microsoft .NET Framework 中的一个工具,用来创建和管理 .NET 应用程序的许可证。Lc.exe 工具可以将某个特定的 Assembly 添加到另一个 Assembly 中,从而使其需要一个许可证才能运行。在运行某…

    C# 2023年5月31日
    00
  • 详解ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁

    详解ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁 在ASP.Net Core应用程序中,分布式锁是一项非常重要的任务,它可以帮助您避免并发问题和数据竞争。CSRedis是一种流行的Redis客户端,它可以帮助我们实现分布式锁。在本攻略中,我们将详细讲解如何借助CSRedis实现一个安全高效的分布式锁,并提供两个示例说明。 步骤…

    C# 2023年5月17日
    00
  • C++ 和 C# 中的 lambda的方法技巧

    C++ 和 C# 中的 Lambda 表达式 什么是 Lambda 表达式 Lambda 表达式是从匿名函数演化而来的一种语法。用来简化函数对象的创建。Lambda 表达式可以作为参数传递给函数,也可以被定义为变量和成员变量。Lambda 表达式可以是任何有返回值的函数。 C++ 使用 Lambda 表达式 C++11 开始支持 Lambda 表达式,通过使…

    C# 2023年6月6日
    00
  • 分享WCF文件传输实现方法—WCFFileTransfer

    WCF(Windows Communication Foundation)是一种用于构建分布式应用程序的框架。WCF可以用于实现各种功能,包括文件传输。本文将介绍如何使用WCF实现文件传输,并分享一个名为WCFFileTransfer的示例项目。 WCFFileTransfer项目介绍 WCFFileTransfer是一个使用WCF实现文件传输的示例项目。该…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部