WebService有什么用?

入门之前先简单介绍下WCF。在用WebService做开发时,很多人都不知道WCF和WebService之间的关系。实际上WCF包含了WebService,这是一个很强悍的通信技术应用框架。微软把.NET平台下所有涉及到分布式通信的一些技术都融合到wcf中来。比如webservice已经融合到wcf来了、MSQ(微软的消息队列)、甚至还融合一些通信协议,比如TCP,UDP协议。所以wcf把.NET平台下的通信问题给解决了。

这样说你也许看了可能还无法理解,这里我们来模拟一个如何解决跨系统、跨平台、跨服务器进行通信情景(如下图)。

WebService的本质:可以用来解决通信的问题--------------------------------------------------------------------

需求:让张三公司下的这些系统能够进行通信,比如我用C#来写一个计算加减乘除的程序让JAVA或PHP的系统直接来用它。

这无疑是一件令人难以理解的问题。这时候我们可以尝试使用WebService来处理这一件费解的事。

如何创建及使用WebService?

步骤:

1.添加一个Web服务

2.添加完成后,可以看到会产生一个.asmx的文件,我们需要看的是产生的.asmx.cs后台页面。在.NET3.5或早期版本,这个CS页面一般会自动生成到App_Code文件夹里。当然,.NET4.0(包含更高版本)是以节点方式产生。这里看下这个文件的代码结构:

    /// <summary>
/// WebServiceDemo 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
// [System.Web.Script.Services.ScriptService]
public class WebServiceDemo : System.Web.Services.WebService
{
[WebMethod]
public string HelloWorld()
{
return "Hello ";
}
}

这个代码其实很简单,一个普通类来继承System.Web.Services.WebService这个基类。

[WebMethod]属性会将方法附加到Public 方法表示希望将该方法公开为 XML Web services 的一部分。通俗的讲就是在没有加这个属性时,你写的WebService就无法被外部访问。

3.创建一个简单的WebService

 [WebMethod]
public int Add(int a, int b)
{
return a + b;
}

4.引用:通过Winform程序去调用它

-4.1创建完winform程序后,添加服务引用

-4.2将WebService地址放到地址去搜索服务,这样就可以看到刚才创建的方法了

5.启用刚才创建的winform程序来调用这个程序

private void button1_Click(object sender, EventArgs e)
{
int a = int.Parse(t1.Text);
int b = int.Parse(t2.Text);
Var_WebService.WebServiceDemoSoapClient client = new Var_WebService.WebServiceDemoSoapClient();//WebService走的是Soap协议
int result= client.Add(a, b);
MessageBox.Show(result.ToString());
}

结果:

WebService学习笔记的更多相关文章

  1. WebService学习笔记系列(二)

    soap(简单对象访问协议),它是在http基础之上传递xml格式数据的协议.soap协议分为两个版本,soap1.1和soap1.2. 在学习webservice时我们有一个必备工具叫做tcpmon ...

  2. Java WebService学习笔记 - Axis进阶(二)

    上一篇  Java WebService学习笔记 - Axis(一) 前一篇博文中简单介绍了Axis的使用方法,这篇将介绍一些Axis的一些高级特性 Axis中Handler的使用 Handler ...

  3. Java WebService学习笔记 - Axis(一)

    WebService 简介 实际开发中,很多系统都是基于历史遗留系统进行开发,有时,这些系统基于不同的语言,如C,C++,C#,java,PHP等等.为了实现历史系统的再利用,或向外部程序暴露调用接口 ...

  4. webservice 学习笔记 1

    Webservice----------->跨语言服务调用 (视频学习总结) 1-1.有OA系统 需要添加一个功能,登录之后显示天气情况 此时可以使用Webservice eg1: 气象局自己有 ...

  5. WebService 学习笔记(一、概念及定义)

    定义 WebService是一种服务导向架构(SOA service-oriented architecture)的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作. Web ...

  6. webservice 学习笔记

    1.webservice的概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的 ...

  7. WebService学习笔记一

    01——Schema约束复习 1.1 schema约束 几个重要知识: 1.namespace 相当于schema文件的id 2.targetNamespace属性 用来指定schema文件的name ...

  8. WebService学习笔记系列(四)

    今天主要来看看服务端的编写及发布. 服务端的编写主要包括三个步骤: 1.编写一个接口,即SEI(server endpoint interface) 2.编写接口的实现类,即SIB (server i ...

  9. WebService学习笔记系列(三)

    网上有一些提供webservice服务的网站,我们要怎么调用呢? 今天来看个如何调用手机归属地查询服务.这个网站上提供了许多webservice服务,其中包括手机归属地查询服务,我们今天就用wsimp ...

  10. WebService学习笔记系列(一)

    webservice主要是解决两个系统或者两个应用程序之间的远程调用,它提供了一种通过web方式访问的api,调用是跨语言.跨平台的. webservice的客户端与服务端进行交互的时候使用xml来传 ...

随机推荐

  1. [转]使用Xcode和Instruments调试解决iOS内存泄露

    虽然iOS 5.0版本之后加入了ARC机制,由于相互引用关系比较复杂时,内存泄露还是可能存在.所以了解原理很重要. 这里讲述在没有ARC的情况下,如何使用Instruments来查找程序中的内存泄露, ...

  2. 日常工作中使用的一些Mongodb语句

    .通过_userID字段查询重复录入内容 > db.template.aggregate({}}},{$}}) .查询 db.template.find({"group_7ee1247 ...

  3. 解决Subclipse1.6在64位JDK下不可用的问题

    Failed to load JavaHL Library.  These are the errors that were encountered:   需要下载SVNKit Adapter Sub ...

  4. python 零散记录(三) 格式化字符串 字符串相关方法

    使用 % 符号格式化字符串: """常用转换说明符:""" #%s: 按照str()方式转换 #%r: 按照repr()方式转换 #%d: ...

  5. ASP.NET 路由

    URL 模式可以包含文本值和变量占位符(也称为“URL 参数”).  文本和占位符位于由斜杠 (/) 字符分隔的 URL 段中. 当生成请求时,URL 分析为段和占位符,变量值提供给请求处理程序.  ...

  6. HTML5 application cache

    Application Cache API (一) 基本应用 http://www.cnblogs.com/blackbird/archive/2012/06/12/2546751.html Appl ...

  7. JDBC_demo:java连接mysql过程

    1.任何数据库驱动程序都提供对java.sql.Driver接口的驱动类,mysql-connector-java-5.1.39-bin.jar中Driver: package com.mysql.j ...

  8. 51单片机连接24C02-C语言测试代码

    忙了一天多终于透彻了,自己写的不好使,用别人的逐步分析改成自己的,我写得非常简洁易懂. 我总结3点需要注意的地方 1.关闭非IIC通信器件,比如我的开发板SDA和SCL也连接了DS1302,造成干扰会 ...

  9. weekend110(Hadoop)的 第四天笔记

    (2015年1月18日) 课程目录 01-复习 02-hadoop中的序列化机制 03-流量求和mr程序开发 04-hadoop的自定义排序实现 05-mr程序中自定义分组的实现 06-shuffle ...

  10. GUI(图形用户界面)

    一.GUI(图形用户界面) GUI Graphical User Interface(图形用户接口) 用图形的方式,来显示计算机操作的界面,这样更方便更直观 CLI Command line User ...