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 ...
随机推荐
- Educational Codeforces Round 19 A+B+C+E!
A. k-Factorization 题意:将n分解成k个大于1的数相乘的形式.如果无法分解输出-1. 思路:先打个素因子表,然后暴力判,注意最后跳出的条件. int len,a[N],b[N]; v ...
- learn资料
老陈的CSDN博客: http://blog.csdn.net/qq_35587839 1.memcache 和 memcached的区别:http://www.phpweblog.net/fuyon ...
- BFC浅析
1.定义 BFC(Block formatting context)即"块级格式化上下文".它是一个独⽴的渲染区域,只有Block-level box参与, 它规定了内部的Bloc ...
- BZOJ3507 [Cqoi2014]通配符匹配 【哈希 + 贪心】
题目 几乎所有操作系统的命令行界面(CLI)中都支持文件名的通配符匹配以方便用户.最常见的通配符有两个,一个 是星号(""'),可以匹配0个及以上的任意字符:另一个是问号(&quo ...
- http请求代理proxy-ajax
今天把项目中的反向代理脚本程序抽成了一个插件,通过配置文件配置代理的http请求,这样使用起来比较方便,每位开发成员都可以用自己配置的代理调试代码.也可以用来直接做http代理,你甚至都不用Charl ...
- hdu 3992 AC自动机上的高斯消元求期望
Crazy Typewriter Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- vue2 父子组件间通信
父组件往子组件传值 props 传text father.vue <template> <div class="father"> {{'我是父组件'}} & ...
- 标准C程序设计七---53
Linux应用 编程深入 语言编程 标准C程序设计七---经典C11程序设计 以下内容为阅读: <标准C程序设计>(第7版) 作者 ...
- Linux 之 网络相关设置
网络相关设置 参考教程:[千峰教育] 命令: ping: 作用:通常用于检测网络设备的连通性. 格式:ping IP/域名 选项:-c,指定方式测试数据包的次数 实例:ping www.baidu.c ...
- 微信关注事件bug记录
年前研究了一下微信带参数的二维码,处理邀请注册成会员等的方式 通过带参数的二维码触发微信的 subscribe(订阅) 或者 SCAN (已经订阅后)事件,然后抓取eventKey(记录邀请人的信息 ...