OnlyTL

OnlyTL

C#创建、部署和调用 WebService

C#
829
2020-09-11
C#创建、部署和调用 WebService

C#创建、部署和调用 WebService

  Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序。可以用于分布式应用程序之间的交互,和不同程序之间的交互。一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术。

本文基于 Visual Studio 2015 创建了一个简单的 WebService,并通过部署,调用来了解 WebService 开发的整个过程 。

1.WebService创建

首先创建一个空的Web应用程序

0001-18a7e4f394904d9fad85ad094af96bea

0002-5c0b0d0eb6c7448bad5f2fedc9d45c2a

然后鼠标右键点击项目名,选择 添加 -> 新建项

0003-5e0cfacb08e547a38f3877bf715101a7

添加新项 -> Web服务(ASMX)

0004-1ef5fa6706194bb6a358e2a4c2777dcb

接下来就可以编写接口了,在添加的 WebServiceTest.asmx 代码中添加两个简单方法。

public class WebServiceTest : System.Web.Services.WebService
{
    [WebMethod]
    public string HelloWorld()
    {
        return "Hello World";
    }
    [WebMethod(Description ="加法运算")]
    public int Add(string a,string b)
    {
        int sum = 0;
        sum = Convert.ToInt32(a) + Convert.ToInt32(b);
        return sum;
    }
    [WebMethod(Description ="乘法运算")]
    public int Ride(string a,string b)
    {
        int ride = 0;
        ride = Convert.ToInt32(a) * Convert.ToInt32(b);
        return ride;
    }
}

注意:HelloWorld方法是自动创建的,后面 Add 和 Ride 是添加的两个方法。如果方法需要通过webservice的地址进行调用,那就必须在方法上面打上 [WebMethod] 的特性标签,否则是无法通过webservice访问到的。Description 是方法的描述。

运行右键 WebServiceTest.asmx ,选择 在浏览器查看 ,就可以看到接口方法了。

0005-3388bbde7afa4d37bab51bd5f192f42c

访问 WebService 就可以根据地址栏里的地址进行调用 WebService 方法了.

但是这样并不能让其他应用通过网络去访问我们的 WebService ,这就需要部署我们的WebService到服务器,别人才可通过网络调用。

2.WebService部署

接下来,部署 WebService 到本机,部署到服务器和部署到本机也是一样的。 右键项目名,选择 发布

0006-a70f66294ea340beb6d5dea67e858816

这里选择自定义,然后填写配置文件名称

0007-316f3d854eda4f18af56e19ff55b8d18

确定后,我们选择发布的方式为文件系统,填写要发布到本地的路径。

0008-c8f21f408caf4628a67b4a1d7371bd4b

设置不需要改动,下一步点击发布。 在输出可以看到,我们的 WebService 已成功发布到指定的目录了。

0009-de79673d76c4479fbdaf71e557aad06c

注意:网站部署需要用到 IIS,而我这里是已经开启的,如果没有开启的话,可以通过 开始菜单 > 控制面板 > 程序 > 启用或关闭 windows 功能 开启。开启后再进行发布。

3.WebService调用

下面创建一个简单的程序,调用我们的WebService。 在解决方案中创建一个 winform 程序,然后添加两个输入框和两个按钮。

0010-b5794c75d7034fb482a64dbf955f6aa9

然后在winform程序中,右键 引用 -> 添加服务引用 ->高级

0011-af1c9602e75141fc8a4337cdf4f89004

然后点击下方添加Web引用

0012-cc9fd9cc1ca44a528916d4a236a0935c

然后选择此解决方案中的 Web 服务

0013-0eec907c9f43444085897e5211cdb435

选中我们的 WebService ,点击 添加引用

0014-c08eed353c42437696af7c0fe97b9dcb

引用添加完成,开始在我们代码中调用 WebService

示例代码 求和按钮点击事件:

private void Addbutton_Click(object sender, EventArgs e)
{
    //获取输入框内容
    string num1 = this.textBox1.Text;
    string num2 = this.textBox2.Text;

    Service.WebServiceTest webservice = new Service.WebServiceTest();
    int sum = webservice.Add(num1, num2);
    MessageBox.Show(num1 + "+" + num2 + "=" + sum);
}

然后将 winform 程序设为启动项目,点击运行,结果如下:

0015-98a1de8ba10c44e6b1ec310e653b8dfb

求积按钮点击事件:

private void Ridebutton_Click(object sender, EventArgs e)
{
    //获取输入框内容
    string num1 = this.textBox1.Text;
    string num2 = this.textBox2.Text;

    Service.WebServiceTest webservice = new Service.WebServiceTest();
    int sum = webservice.Ride(num1, num2);
    MessageBox.Show(num1 + "×" + num2 + "=" + sum);
}

运行结果:

0016-9a8b3fe83d184355b6297b5805aa02e1

注意:此示例只是在本地简单创建,部署和调用了 WebService ,发布到服务器,需要在 IIS 管理器 中添加网站,配置 IP 地址和端口,再将在本地发布的文件拷贝到服务器上即可。