打开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);
就可以了。