C#完成最简单的WebService创建及使用

时间:2022-01-22 07:05:16

打开Visual Studio(我用的是2010)→文件→新建→项目→Visual C#→Web→ASP.NET Web 服务应用程序

打开Service1.asmx文件,会看到里面已经有个HelloWorld方法了,什么都不用改

项目名上右键→重新生成(重新生成:重新编译每个文件。生成:在上次编译的基础上编译那些修改过了的文件。)

进入该项目所在文件夹,复制bin文件夹和Service1.asmx文件到准备部署到IIS的文件夹,假设文件夹名为TestWebService,部署到本地IIS

打开浏览器→地址栏输入“localhost:(端口)/Service1.asmx”→进入

页面上会列出这个WebService所包含的方法,由于我们只包含HelloWorld方法,所以只看到一个HelloWorld方法的链接

以上,一个可用的WebService就创建好了。

接下来做一个最简单的C#调用这个服务的例子:

文件→新建→项目→Visual C#→Windows→Windows窗体应用程序

项目创建好后,在项目名上右键→添加服务引用

在打开窗口的地址输入栏上填入之前浏览器地址栏输入的地址(“localhost:(端口)/Service1.asmx”)→前往→显示该地址下的服务以及操作,点击确定

在之后显示的窗体上添加一个Button以及一个TextBox(没有找到工具箱的话在 视图→工具箱 里面添加)→双击这个按钮进入代码页面

在双击事件方法内写上:

ServiceReference1.Service1SoapClient obj = new ServiceReference1.Service1SoapClient();
textBox1.Text = obj.HelloWorld();

重新生成项目→运行→点击按钮看到TextBox中出现“HelloWorld”。

如果想要传参,比如实现传入X和Y,得到X+Y的结果,

就要在前面创建WebService项目的Service1.asmx.cs文件里的Service1类中多写个WebMethod:

[WebMethod]
public string calculate(int x, int y)
{
return (x + y).ToString();
}

调用的时候换成:

ServiceReference1.Service1SoapClient obj = new ServiceReference1.Service1SoapClient();
textBox1.Text = obj.calculate(1, 1);

就可以了。