分布式技术 webservice
web service 是一个平台独立的、低耦合的、自包含的、基于编程的web的应用程序,可使用开发的XML(标准通用标记语言下的一个字表)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
web service技术能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件就可互相交换数据或集成。依据webservice规范实施应用之间,无论他们所使用的语言,平台或内部协议是什么,都可以互相交换数据。webservice是自描述、自包含的可用网络模块、可执行具体业务功能。webservice也容易部署,因为他们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML/HTTP.webservice减少了应用接口的花费,webservice为整个企业甚至多个组织之间的业务流程集成提供了一个通用机制。
1.创建一个webservice并调用
(1)打开vs2013,新建空项目webappservice,注意选择.NET Framework 的版本,这里选择.NET Framework4.5.
(2)右击项目webappservice,选择“添加新项 -> web -> web 服务”,命名“mywebservice.asmx”.
(3)在mywebservice1 类中默认会添加一个 Hello World 方法,我加一个方法。
/// <summary>
/// 姓名+年龄
/// </summary>
/// <param name="name"></param>
/// <param name="age"></param>
/// <returns></returns>
[WebMethod]
public string people(string name, string age)
{
return "姓名:" + name + "年龄:" + age;
}
(4)直接在浏览器中浏览MyWebService1.asmx
(5)单机这个方法people,如下图
(6)直接调用,效果如图。
返回是一个XML文件,在项目开发中,我们一般不这样的调用,而是通过添加web引用的方式。
所以,在需要引用webservice的时候,需要将此服务运行起来。右击,“在浏览器中查看”,当然这web服务就在IIS Express里面了。
(7)右击项目webappService,选择“添加->新建项->web窗体”,命名WebForm1.aspx,并在里面添加内容:
<div>
<table>
<tr>
<td>姓名</td>
<td>
<asp:TextBox ID="txtName" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>年龄</td>
<td>
<asp:TextBox ID="txtAge" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td></td>
<td>
<asp:Button ID="btnAction" runat="server" Text="执行" />
</td>
</tr>
<tr>
<td>结果</td>
<td> <asp:TextBox ID="txtResult" runat="server"></asp:TextBox></td> </tr>
</table>
</div>
</form>
(8)在项目右击"添加服务引用",点击“发现”
当然,如果我们把web服务部署到IIS上,也可以直接在地址栏中输入web服务地址,然后单击“转到”按钮。
(9)webForm1后台代码:
/// <summary>
/// 执行
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAction_Click(object sender, EventArgs e)
{
ServiceReference1.MyWebService1SoapClient _client = new ServiceReference1.MyWebService1SoapClient();
txtResult.Text = _client.people(txtName.Text.Trim(), txtAge.Text.Trim());
}
(10)右击webForm1.aspx,在;浏览器中查看,运行结果如图,(注:不要关闭在浏览器中打开的http://localhost:50785/MyWebService1.asmx)
为了方便,这里直接在项目中运行MyWebService1.asmx此服务。一般在项目中,我们会把所有的web服务单独放到一个web站点,然后发布到服务器IIS上面。
分布式技术 webservice的更多相关文章
- 现有分布式技术(socket、.net remoting、asp.net webservice、WSE、ES)和wcf的比较及优势
1:socket VS remoting 使用socket无疑是效率最高的.但是,在复杂的接口环境下,socket的开发效率也是最低的.故在兼顾开发效率的情况下,可以使用remoting来代替sock ...
- .Net 分布式技术比较
内容转自于 http://www.mamicode.com/info-detail-585547.html .NET 分布式技术比较 1. MSMQ(Microsoft Message Queue) ...
- C#远程调用技术WebService修炼手册
一.课程介绍 一位伟大的讲师曾经说过一句话:事物存在即合理!意思就是说:任何存在的事物都有其存在的原因,存在的一切事物都可以找到其存在的理由,我们应当把焦点放在因果关联的本质上.所以在本次分享课开课之 ...
- Zookeeper系列二:分布式架构详解、分布式技术详解、分布式事务
一.分布式架构详解 1.分布式发展历程 1.1 单点集中式 特点:App.DB.FileServer都部署在一台机器上.并且访问请求量较少 1.2 应用服务和数据服务拆分 特点:App.DB.Fi ...
- C#远程调用技术WebService葵花宝典
一.课程介绍 直接开门见山吧,在学习之前阿笨想问大家一句,关于WebService远程过程调用技术(RPC) 你真的会了吗?不要跟老夫扯什么WebService技术已经过时,如果你的内心有在偷偷告诉你 ...
- 搞懂分布式技术21:浅谈分布式消息技术 Kafka
搞懂分布式技术21:浅谈分布式消息技术 Kafka 浅谈分布式消息技术 Kafka 本文主要介绍了这几部分内容: 1基本介绍和架构概览 2kafka事务传输的特点 3kafka的消息存储格式:topi ...
- 搞懂分布式技术28:微服务(Microservice)那点事
搞懂分布式技术28:微服务(Microservice)那点事 微服务(Microservice)那点事 肥侠 2016-01-13 09:46:53 浏览58371 评论15 分布式系统与计算 微服务 ...
- 搞懂分布式技术19:使用RocketMQ事务消息解决分布式事务
搞懂分布式技术19:使用RocketMQ事务消息解决分布式事务 初步认识RocketMQ的核心模块 rocketmq模块 rocketmq-broker:接受生产者发来的消息并存储(通过调用rocke ...
- 搞懂分布式技术11:分布式session解决方案与一致性hash
搞懂分布式技术11:分布式session解决方案与一致性hash session一致性架构设计实践 原创: 58沈剑 架构师之路 2017-05-18 一.缘起 什么是session? 服务器为每个用 ...
随机推荐
- UTI iPhone支持依文件后缀名打开应用
本文转载至 http://blog.csdn.net/zaitianaoxiang/article/details/6658492 iphoneapplicationprocessingfileurl ...
- sql duplicate key
本文来自:高爽,转载请注明. 向数据库插入记录时,有时会有这种需求,当符合某种条件的数据存在时,去修改它,不存在时,则新增,也就是saveOrUpdate操作.这种控制可以放在业务层,也可以放在数据库 ...
- 1084 矩阵取数问题 V2
1084 矩阵取数问题 V2 基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 一个M*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,先从左上走到右下 ...
- Django分发控制器urls--白话聊Django系列
开始前,先上一张图,让理解Django内部的处理流程,从图中我们可以知道Django内部使用MTV架构,那今天讲的第一个部分就是控制器,在Tornado框架中叫做路由系统,负责把url映射到相应的处理 ...
- [Erlang危机](5.1.3)进程
原创文章,转载请注明出处:server非业余研究http://blog.csdn.net/erlib 作者Sunface 联系邮箱:cto@188.com Processes Trying to ge ...
- redis设置密码后的重启问题
Redis 设置密码登陆后使用 /etc/init.d/redis_6379 restart会出现:[root@8183539155d2 /]# /etc/init.d/redis_6379 rest ...
- Redis3.2.8配置参数及说明
bind 127.0.0.1# 绑定的主机地址,不设置默认将处理所有请求protected-mode yes# 是否开启保护模式,默认开启,要是配置里面没有指定bind和密码,开启该参数后,redis ...
- Redis分布式锁的python实现
案例1: #!/usr/bin/env python # coding=utf-8 import time import redis class RedisLock(object): def __in ...
- 加载顺序 ready onload onreadystatechange
js文件是异步加载, js是在什么时候被加载执行的 动态引入的外部 JS 文件在各浏览器中的加载顺序不一致 1/ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件):比如 ...
- 每天一个Linux命令(50)netstat命令
netstat命令用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况. (1)用法: 用法: netstat [选项参数] (2)功能: ...