WebService 应用- .Net 平台WebService的创建、部署和使用介绍(转)

.NET平台内建了对Web Service的支持,包括Web Service的构建和使用。与其它开发平台不同,使用.NET平台,你不需要其他的工具或者SDK就可以完成Web Service的开发了。.NET Framework本身就全面支持Web Service,包括服务器端的请求处理器和对客户端发送和接受SOAP消息的支持。下来我们就使用 一个非常简单的示例来介绍Web Service的创建、部署和使用。

   

一、用Visual Studio创建一个最简单的Web Service

  首先,打开VS,打开“File->New->Web Site”,选择“ASP.NET Web Service”。

  查看Service.cs代码,你会发现已经为Web Service文件建立了缺省的框架。原始代码为:

 

Default Web Service
using System;ITPUB个人空间E ][ASt*b\
using System.Linq;ITPUB个人空间;u"V3J(C~+w'p?
using System.Web;
pY'lO [v0
using System.Web.Services;ITPUB个人空间i:\Q1n"n'z+p
using System.Web.Services.Protocols;ITPUB个人空间+Bp%^'t/zt5`
using System.Xml.Linq;
#G"x n|o2} c.T^ b0
1d\5t Q,g0[WebService(Namespace 
= "http://tempuri.org/")]
"iwK DIKj0[WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1)]
|.@4d_hR%y0
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. ITPUB个人空间7Jvq1v.l?^
// [System.Web.Script.Services.ScriptService]
C/j:Wy6r7Z WC1q0
public class Service : System.Web.Services.WebService
O HH9e N(t0{
u*d:w @w7Si0    
public Service () {ITPUB个人空间 a7I;y/Jo"~X
        
//Uncomment the following line if using designed components ITPUB个人空间8B2wn W,CX
        
//InitializeComponent(); 
-e g dn4n.y5^n0
    }ITPUB个人空间 \'o;g8Z[5]em
ITPUB个人空间yTKL%I!zw.]
    [WebMethod]ITPUB个人空间zX4b2i*GC ^7w
    
public string HelloWorld() {ITPUB个人空间1zkO'r4y~
        
return "Hello World";ITPUB个人空间7K.d+r-ex2F#u(G[(]?
    }ITPUB个人空间HZx4Y$IM3x Jo
}


u|Z^3QJ Z Kx/u0

  这个Web服务使用http://tempuri.org/作为默认命名空间。工程里面已经有一个Hello World的方法了,直接运行看看效果,点击显示页面上图中的“HelloWorld”超链接,跳转到下一页面。再点击“调用”按钮,就可以看到用XML格式返回的Web Service结果为: <string>Hello World</string>。这样我们就可以添加所有我们想要提供的方法。

  要注意的是:

  1. http://tempuri.org/是默认命名空间,建议发布前更换自己的命名空间。

  2. [WebMethod]是Web Service为我们提供的特性,它表示下面的方法是 Web 方法,允许Web使用SOAP调用该方法。一个Web Service文件中可以有多个[WebMethod],一个[WebMethod]只能对它下面的方法有效。

 

二、部署WebServiceITPUB个人空间5mrnq)K3d ^2}*Zk

  Webservice只有部署好并发布后才能供外部使用,不如发布到tcp 服务器。

  Webservice部署将会有下面的目录结构:

  1.  \InetpubITPUB个人空间:J$D'd!VNS|0j0h

  2.  \wwwroot

  3.  \WebServiceName

  4.  WebServiceName.asmx

  5.  \Bin

 

  WebService发布的条目有:

条目

描述

Web应用程序目录

作为你的XML Web服务的根目录。所有的文件都存放在这个目录中。这个目录应该被标记为一个IIS Web应用程序所用。

WebServiceName.asmx文件

调用XML Web服务的客户端的基本URL。这个文件可以为任何有效的文件名。

WebServiceName>.disco文件

(可选的)作为XML Web服务的发现机制。.disco文件不会自动地为XML Web服务创建。这个文件可以为任何有效的文件名。

Web.config文件

(可选择的)如果你需要覆盖默认配置设置,你可以包含一个web.config文件。Web服务使用这个配置文件来允许系统的定制和可扩展性。例如,如果在系统中你的Web服务需要验证而其他的Web应用程序不需要的话,你可以提供一个该Web服务特定的web.config文件。

\Bin目录

包含用于这个XML Web服务的二进制文件。如果你的XML Web服务类和.asmx文件不在同一个目录下,那么包含类的部件必须在\Bin目录中。

ITPUB个人空间*N6t2x`hb

 三、使用WebService

  1. 添加Web引用---实例化Web Service类---执行WebService方法
?i;kBkVN$k0  WebService 可能在本项目、非本项目、甚至在异地被调用。

  * 添加Web Service引用

  * 可以改一下Web Service的引用名,然后实例化应用再调用方法:  (WebService ws = new WebService(); string s = ws.HelloWorld();)ITPUB个人空间_-Ax"UY

  * 添加完引用后,同时会看到App_WebReferences文件夹下已经添加了Web Service的相关文件

      *.disco,*.discomap,*.wsdl

  2. WebService在前台页面的JS 调用方法

    2.1 首先通过下面的方法把Webservice在前台引用进来

  <asp:ScriptManager runat="server">

  <Services>

  <asp:ServiceReference Path="WebService.asmx" InlineScript="True" />

  </Services>

  </asp:ScriptManager>

    2.2 然后就可以通过JS程序进行调用,示例如下:

  <script. type="text/jscript">

  function a()

  {

  WebService.HelloWorld(onresult);

  }

  a();

  ......

  </script> 

 

四、调试WebService

  在VS里,如果WebService是与ASP.NET放在同一个项目的,直接设置断点就可以进行单步调试了。但如果该WebService是个独立的项目的话,客户端调用后 就算设置断点也是无法进行调试的。

  如果只是单独的对WebService调试的话。可以这么做,对该WebService项目点击右键,调试,启动新实例,就可以设置断点进行单步调试了。

  但如果是想测试下客户端传送到WebService的数据进行调试的话,可以这么做:启动客户端,如WINFORM或WEB页,然后对该Web Service下的调试附加到进程,在WebService里设置好断点就可以进行调试了。

  也可以在Web.Config里启动trace 实时检测数据变化。

posted @ 2012-10-24 22:10  Good_Code  阅读(317)  评论(0编辑  收藏  举报