http://www.cnblogs.com/yycxbjl/archive/2010/04/20/1716689.html
http://www.cnblogs.com/yycxbjl/archive/2010/04/20/1716689.html
PS: 开发工具 VS2010, 所有工程都为Debug状态,本人刚接触 Web Service,此文为菜鸟入门用例,高手勿笑!
转载请注明出处
一、创建Web Service 工程
1. 新建一个 Web Service 工程,工程名为WebServiceProject
File -> New -> Project --> Visual C# -> Web -> ASP.NET Web Service Application
注意: .NET Framework版本选3.5, 4.0 中没有该类型的工程
2. 在WebServiceProject中,删除 Servie1 类中原有的HelloWorld方法,添加一个方法 ReverseString
代码
[WebMethod]
public string ReverseString(string s)
{
System.Threading.Thread.Sleep(5000);
char[] a = s.ToCharArray();
Array.Reverse(a);
return new string(a);
}
必须加上在方法前加上 [WebMethod] 属性
方法中首行的 Sleep(5000) 为了展示下文中同步调用与异步调用 Web Service中方法的区别
将 [WebService(Namespace = "http://tempuri.org/")]
改为 [WebService(Namespace = "http://WebServiceSample/")] 名字随便取
可以不改,若不改,下一步通过浏览器查看时会有提示(可以自己看一下)
3. 编译并测试WebServiceProject
按 F7编译工程,通过浏览器查看Servic1.asmx
由于工程中只有一个方法,页面显示如下:
点击ReverseString,可以进入该方法的测试页面,进行测试
二、部署Web Service
1. 发布工程到本地的某一个目录(D:\WebServiceSample)
2. 发布完后,在IIS中添加一个指向该目录的虚拟目录(或应用程序)
3. 通过 浏览器 查看,测试发布是否成功
http://localhost/webservicesample/service1.asmx
页面显示应与上一节中相同
三、使用Web Service
1. 使用WSDL 工具生成 Web Service 中 Servie1类的代理类
打开 VS2010 命名行工具
输入如下命名,在D:\生成一个myProxyClass.cs文件,里面有一个代理类
public partial class Service1 : System.Web.Services.Protocols.SoapHttpClientProtocol
关于如何生成代理类的详见
http://msdn.microsoft.com/zh-cn/library/7h3ystb6.aspx
2. 新建一个Windows Form Application,来使用Web Service,工程名为 WebServiceClient
在工程中添加步骤1中生成的myProxyClass.cs文件
添加 System.Web.Services引用:Project -> Add Reference
3. 在Form1上,拖入几个控件
4. 为按钮添加事件响应函数
//同步
private void button1_Click(object sender, EventArgs e)
{
Service1 ws = new Service1();
textBox2.Text = ws.ReverseString(textBox1.Text);
} //异步
private void button2_Click(object sender, EventArgs e)
{
Service1 ws = new Service1();
ws.ReverseStringCompleted += new ReverseStringCompletedEventHandler(ReverseStringCompleted);
ws.ReverseStringAsync(textBox1.Text);
} private void ReverseStringCompleted(object sender, ReverseStringCompletedEventArgs e)
{
textBox2.Text = e.Result;
}
5. 测试程序的效果
用同步响应时,在Web Service中的方法结束前,程序无法响应
用异步响应时,在Web Service中的方法结束前,程序可以响应
http://www.cnblogs.com/yycxbjl/archive/2010/04/20/1716689.html的更多相关文章
- ghostDoct 使用 (转 http://www.cnblogs.com/RockyMyx/archive/2010/04/20/Project-Route-Using-GhostDoc.html)
一.简介 GhostDoc是Visual Studio的一个免费插件,可以为开发人员自动生成XML格式的注释文档. 二.下载 需要的朋友可以去这里下载,填个Email地址就可以下了:GhostDoc下 ...
- http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html
http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html
- 【HTML】HTML特殊符号【转http://www.cnblogs.com/web-d/archive/2010/04/16/1713298.html】
HTML特殊字符编码大全:往网页中输入特殊字符,需在html代码中加入以&开头的字母组合或以&#开头的数字.下面就是以字母或数字表示的特殊符号大全. ...
- Linux JDK 安装及卸载 http://www.cnblogs.com/benio/archive/2010/09/14/1825909.html
参考:http://www.cnblogs.com/benio/archive/2010/09/14/1825909.html
- http://www.cnblogs.com/peida/archive/2013/04/23/3036035.html
http://www.cnblogs.com/peida/archive/2013/04/23/3036035.html
- http://www.cnblogs.com/wzh206/archive/2010/03/21/1691112.html
http://www.cnblogs.com/wzh206/archive/2010/03/21/1691112.html
- http://www.cnblogs.com/huangcong/archive/2010/06/14/1757957.html
http://www.cnblogs.com/huangcong/archive/2010/06/14/1757957.html http://www.cnblogs.com/langtianya/a ...
- http://www.cnblogs.com/fczjuever/archive/2013/04/05/3000680.html
http://www.cnblogs.com/fczjuever/archive/2013/04/05/3000680.html
- android权限大全转http://www.cnblogs.com/classic/archive/2011/06/20/2085055.html
android权限大全转http://www.cnblogs.com/classic/archive/2011/06/20/2085055.html 访问登记属性 android.permission ...
随机推荐
- NKOJ1236 a^b (数论定理的应用)
a^b 对于任意两个正整数a,b(0<=a,b<10000)计算a^b各位数字的和的各位数字的和的各位数字的和的各位数字的和. Input 输入有多组数据,每组只有一行 ...
- BZOJ4566 [Haoi2016]找相同字符 【后缀数组】
题目 给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数.两个方案不同当且仅当这两 个子串中有一个位置不同. 输入格式 两行,两个字符串s1,s2,长度分别为n1,n2.1 & ...
- javascript中 for循环的一些写法 for length 以及for in 还有 for of 的区别
最近在写一些前端的代码,遇到一个产品列表遍历的问题,正好使用到for 的几种用法,于是研究了下. 代码如下,先说明下goodslist 是一个产品列表 形如这样的数据格式 { ‘types’:1, ' ...
- bzoj 2330 [SCOI2011]糖果 差分约束模板
题目大意 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的多,于是在分配 ...
- YY的GCD(bzoj 2820)
Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必 ...
- docker部署 mysql redis问题
问题:(ubuntu不报错,centos报错) ERROR: : starting container process caused "process_linux.go:402: conta ...
- 开发使用mysql的一些必备知识点整理(三)高级
简介 实体与实体之间有3种对应关系,这些关系也需要存储下来 在开发中需要对存储的数据进行一些处理,用到内置的一些函数 视图用于完成查询语句的封装 事务可以保证复杂的增删改操作有效 关系 创建成绩表sc ...
- 阿里数据库性能诊断的利器——SQL执行干预
概述 在业务数据库性能问题诊断中,如果发现一个业务性能很差跟某个SQL有关,应用连接池几乎被该SQL占满,同时数据库服务器上也不堪重负.此时情况很紧急,业务改SQL重发布已经来不及了,运维能选择的操作 ...
- Truck History(最小生成树)
poj——Truck History Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 27703 Accepted: 10 ...
- JVM 常量池
最近正好在研究这个问题,题主问题本身是有问题的,在JDK7中HotSpot的常量池是放在Java Heap中,并非题目中的native memory中.在JDK6中是放在Perm Space.题主可以 ...