zoukankan      html  css  js  c++  java
  • .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
    <!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->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 实时检测数据变化。

  • 相关阅读:
    bzoj 1927: [Sdoi2010]星际竞速
    bzoj 1926: [Sdoi2010]粟粟的书架
    bzoj 1923: [Sdoi2010]外星千足虫
    bzoj 1922: [Sdoi2010]大陆争霸
    bzoj 1911: [Apio2010]特别行动队
    bzoj 1878: [SDOI2009]HH的项链
    bzoj 1877: [SDOI2009]晨跑
    bzoj 1856: [Scoi2010]字符串
    bzoj 1854: [Scoi2010]游戏
    python小练习,打出1-100之间的所有偶数,设计一个函数,在桌面上创建10个文件,并以数字命名,复利计算函数
  • 原文地址:https://www.cnblogs.com/newcoder/p/4125431.html
Copyright © 2011-2022 走看看