WebService 应用(2) - .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;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;

[WebService(Namespace 
= "http://tempuri.org/")]
[WebServiceBinding(ConformsTo 
= WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
// [System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService
{
    
public Service () {
        
//Uncomment the following line if using designed components 
        
//InitializeComponent(); 
    }

    [WebMethod]
    
public string HelloWorld() {
        
return "Hello World";
    }
}


  这个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]只能对它下面的方法有效。

 

二、部署WebService

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

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

  1.  \Inetpub

  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目录中。


 三、使用WebService

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

  * 添加Web Service引用

  * 可以改一下Web Service的引用名,然后实例化应用再调用方法:  (WebService ws = new WebService(); string s = ws.HelloWorld();)

  * 添加完引用后,同时会看到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 on 2010-05-29 00:08  lantionzy  阅读(1963)  评论(3编辑  收藏  举报