C# WebService创建、发布、调用的简单例子

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

Web service是一种可以接收从Internet或者Internet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。

webservice说明:
  假设A是Client端,B是webservice服务端,用户通过http协议向服务器发送soap请求,webservice返回客户端XML格式的数据。
  客户端由代理对象(proxy)负责与webservice的通信。所以在客户端使用webservice,完全和使用一个本地对象是一样的。

我们现在以一个简单的实例来说明。

一、首先创建Webservice工程,以VS2010为例,如果选择.Net Framework 4,则找不到Web服务应用程序,此时选择ASP.NET空Web应用程序。创建好空应用程序后,选择该工程右键添加Web服务。

创建好程序后默认会有一个HellWorld函数
a) WebService1.asmx文件中的代码
namespace WebApplication1

 {   
    [WebService(Namespace = "http://tempuri.org/")]  // webservice命名空间
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。     

    // [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService 

    { 
        [WebMethod]
        public string HelloWorld()         

    {
            return "Hello World";

         }

     }

 }
b) 运行程序,如图1所示,列出了服务函数名,点击要调用的函数如图2所示,点击调用后出现图2第二张图所示返回函数值。

                                                                                  图1

                                                                           图2

二. 发布WebService到IIS

打开IIS管理器,选择网站->右键添加网站 

注:(1)输入网站名称,应用池选择,选择程序运行需要的.Net FrameWork版本

      (2)物理路径,选择上面WebService发布的程序的路径
      (3)绑定,修改端口,端口不能其他程序使用过

发布完成后访问方式为:http://127.0.0.1:8666/Service.asmx 或 http://localhost:8008/Service.asmx如果出现下图所示,说明发布成功。

三、ASP.NET调用Web Service
首先,打开VS2005,打开"文件-新建-网站",选择"ASP.NET网站"。

然后先添加Web引用,把WebService引到当前的工程里面。方法是:在资源管理器中点击右键,选择添加Web 引用,调出对话框:

在URL中填入,前面写好的WebService运行后浏览器上面显示的地址(即:WebService发布后的访问地址 ),点击"前往"按钮,如上图,就会显示出所引用的WebService中可以调用的方法,然后点击"添加引用",就将webservice引用到了当前的工程里面 ,如下图,解决方案中会出现引进来的WebService文件

 

然后在后台写调用的代码,调用之前和使用其它的对象一样,

要先实例化,实例化的方法是

 localhost.ServiceSoapClient service = new localhost.ServiceSoapClient();

然后就可以通过service来访问WebService里面提供的方法了。

在运行该程序调用的时候,WebService程序还必须启动,否则会报无法连接远程服务器的异常。

这样webservice的简单创建、发布、调用就完成了,图片来自网络,懒得去截图了。。。

posted @ 2016-12-08 14:27  (john_zhang)  阅读(24307)  评论(0编辑  收藏  举报