.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 实时检测数据变化。

.Net 平台WebService的创建、部署和使用介绍的更多相关文章

  1. WebService 的创建,部署和使用

    WebService,即Web服务,能使得运行在不同机器上的不同应用无须借助,专门的第三方软件或硬件,就可相互交换数据或集成. 第一次选择WebService,是为了替代数据库远程连接.我们都知道当S ...

  2. 【转】WebService 的创建,部署和使用

    WebService,即Web服务,能使得运行在不同机器上的不同应用无须借助,专门的第三方软件或硬件,就可相互交换数据或集成. 第一次选择WebService,是为了替代数据库远程连接.我们都知道当S ...

  3. ASP.NET中WebService的创建和部署以及通过反射动态调用WebService

    一.在ASP.NET中创建WebService 首先我们先创建一个ASP.NET Web 应用程序,此处我们以VS2017为例 点击新创建的项目,右键添加新建项,选择Web服务,输入名称后点击添加 这 ...

  4. C#中WebService的创建、部署和调用的简单实例

    webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice的例子. 一:WebService的创建开发 先新建一 ...

  5. java版微信公众平台自定义菜单创建代码实现

    微信公众平台自定义菜单创建代码实现—java版 搞了两天的自定义菜单,终于搞定了,现在分享下心得,以便后来者少走弯路...... 好了,先看先微信官方的API 官方写的很详细,但是我看完后很茫然,不知 ...

  6. 淘宝TAE平台定时任务包的部署步骤

    淘宝TAE平台定时任务包的部署: 第一步:首先把自己的任务打包成一个jar包.使用maven打包的命令为:mvn clean install 第二步:把任务jar包依赖的jar包全部导出来.使用mav ...

  7. 代码质量管理平台之SonarQube安装部署

    一.简介 Sonar是一个用于代码质量管理的开放平台,通过插件机制,sonar可以收集不同的测试工具,代码分析工具,以及持续集成工具.与持续集成工具(比如jenkins)不同,sonar并不是简单地把 ...

  8. 基于kubernetes平台微服务的部署

    基于kubernetes平台微服务的部署 首先下载插件: kubernetes Continuous Deploy 然后去找 .kube/ 里的config 复制里面的内容 去添加凭据: 然后就是脚本 ...

  9. 【WebService】WebService的创建和使用——文件名称生成器

    简介 之前做过一个文件名称生成器,通过Webservice读取XML文件并将其通过Json传到客户端中的combobx,用户通过combobox选择要生成文件的名称模板,点击生成则会产生一个文件名称并 ...

随机推荐

  1. POJ 2181 Jumping Cows

    Jumping Cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6398   Accepted: 3828 Desc ...

  2. 项目记事【Hibernate-1】:调用 saveOrUpdate() 方法出错

    Hibernate 版本:3.3.1 背景: 后端编辑一个对象,该对象(ProductDO)下,有一个另一个自定义对象(ProductLiabilityDO)的 OneToMany 关系,如下: @O ...

  3. BZOJ 4552 [Tjoi2016&Heoi2016]排序 ——线段树 二分答案

    听说是BC原题. 好题,二分答案变成01序列,就可以方便的用线段树维护了. 然后就是区间查询和覆盖了. #include <map> #include <cmath> #inc ...

  4. mysql监控指标

    1.最大连接数监控 show VARIABLES like "max_connections"; //最大连接数 show global status like 'Threads_ ...

  5. python 字体颜色,背景颜色

  6. SPOJ CIRU The area of the union of circles

    You are given N circles and expected to calculate the area of the union of the circles ! Input The f ...

  7. 【NOIP2016练习】T1 挖金矿(二分答案)

    题意: 思路:二分答案A 合法的答案 sigma(s[i][xi])/sigma(xi)>=a i<=m sigma(s[i][xi]-a*xi)>=0 对于每个i找到xi使s[i] ...

  8. 25深入理解C指针之---传递数组

    一.传递数组:将数组作为参数传入函数,或将数组作为数据当成是函数的返回值 1.定义:可以传入和传出数组 2.特征: 1).将数组作为参数传递给函数的本质是传递数组的地址,这种传递无需复制数组元素,所以 ...

  9. 矢量图和Word:EPS,PDF,EMF和SVG

    1.EMF和Word 在学校的时候,我思考过一个问题,论文中的插图如何保证清晰度.关键之一就是使用矢量图.参考知乎问题:如何在论文中画出漂亮的插图?.常见的矢量图包括:EPS,EMF和SVG.SVG适 ...

  10. Vijos 1323: 化工厂装箱员

    题形:DP 题意:A,B,C三种物品,一共N个,顺序摆放,按顺序拿.每次手上最多能拿10个物品,然后可以将某个类别的物品分类放好,再从剩下的拿,补全10个.问最少放几次,可以把所有物品分类好. 思路: ...