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的更多相关文章

  1. ghostDoct 使用 (转 http://www.cnblogs.com/RockyMyx/archive/2010/04/20/Project-Route-Using-GhostDoc.html)

    一.简介 GhostDoc是Visual Studio的一个免费插件,可以为开发人员自动生成XML格式的注释文档. 二.下载 需要的朋友可以去这里下载,填个Email地址就可以下了:GhostDoc下 ...

  2. http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html

    http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html

  3. 【HTML】HTML特殊符号【转http://www.cnblogs.com/web-d/archive/2010/04/16/1713298.html】

    HTML特殊字符编码大全:往网页中输入特殊字符,需在html代码中加入以&开头的字母组合或以&#开头的数字.下面就是以字母或数字表示的特殊符号大全.                   ...

  4. Linux JDK 安装及卸载 http://www.cnblogs.com/benio/archive/2010/09/14/1825909.html

    参考:http://www.cnblogs.com/benio/archive/2010/09/14/1825909.html

  5. http://www.cnblogs.com/peida/archive/2013/04/23/3036035.html

    http://www.cnblogs.com/peida/archive/2013/04/23/3036035.html

  6. http://www.cnblogs.com/wzh206/archive/2010/03/21/1691112.html

    http://www.cnblogs.com/wzh206/archive/2010/03/21/1691112.html

  7. 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 ...

  8. http://www.cnblogs.com/fczjuever/archive/2013/04/05/3000680.html

    http://www.cnblogs.com/fczjuever/archive/2013/04/05/3000680.html

  9. 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 ...

随机推荐

  1. 九度oj 题目1361:翻转单词顺序

    题目描述: JOBDU最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上.同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思.例如,“stu ...

  2. Welcome-to-Swift-09类和结构体(Classes and Structures)

    类和结构体是人们构建代码所用的一种通用且灵活的构造体.为了在类和结构体中实现各种功能,我们必须要严格按照对于常量,变量以及函数所规定的语法规则来定义属性和添加方法. 与其他编程语言所不同的是,Swif ...

  3. 学习 WebService 第一步:体系结构、三元素SOAP/WSDL/UDDI

    原文地址:爱军的博客——WebService简介 一.为什么需要Web Service 笔记: WebService 可以实现 跨(硬件.服务器.开发工具.平台.应用程序.程序语言……)共享数据和应用 ...

  4. [转] Makefile 基础 (2) —— Makefile 总述

    该篇文章为转载,是对原作者系列文章的总汇加上标注. 支持原创,请移步陈浩大神博客:(最原始版本) http://blog.csdn.net/haoel/article/details/2886 我转自 ...

  5. 富文本编辑器quill---vue组件(vue-quill-editor)的使用

    1.配置webpack plugin 解决以下报错 Uncaught TypeError: Cannot read property 'imports' of undefined (image-res ...

  6. zoj 3790 Consecutive Blocks 离散化+二分

    There are N (1 ≤ N ≤ 105) colored blocks (numbered 1 to N from left to right) which are lined up in ...

  7. utilize HttpClient to generate a SSL access and generate REST access to fetch data, async programming? cool and brief

    WebRequestHandler handler = new WebRequestHandler(); try { X509Certificate2 certificate = new X509Ce ...

  8. HibernateException: No Hibernate Session bound to thread

    解决No Hibernate Session bound to thread 背景交代 在使用this.getHibernateTemplate().getSessionFactory().getCu ...

  9. x86 下的 struct 變數 member 擺放位置

    2 int main() 3 { 4 struct _test { 5 int a; 6 int b; 7 int c; 8 }; 9 10 struct _test test; 11 test.a ...

  10. ajax 分页(jquery分页插件pagination) 小例3

    <#macro ajaxPaginte url > <script type="text/javascript"> var PageSize = 10;// ...