PS: 开发工具 VS2010, 所有工程都为Debug状态,本人刚接触 Web Service,此文为菜鸟入门用例,高手勿笑!

转载请注明出处 :http://www.cnblogs.com/yycxbjl/archive/2010/04/20/1716689.html

一、创建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

  1. [WebMethod]
  2. publicstring ReverseString(string s)
  3. {
  4. System.Threading.Thread.Sleep();
  5. char[] a = s.ToCharArray();
  6. Array.Reverse(a);
  7. returnnewstring(a);
  8. }

必须加上在方法前加上 [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.  为按钮添加事件响应函数

  1. //同步
  2. privatevoid button1_Click(object sender, EventArgs e)
  3. {
  4. Service1 ws =new Service1();
  5. textBox2.Text = ws.ReverseString(textBox1.Text);
  6. }
  7.  
  8. //异步
  9. privatevoid button2_Click(object sender, EventArgs e)
  10. {
  11. Service1 ws =new Service1();
  12. ws.ReverseStringCompleted +=new ReverseStringCompletedEventHandler(ReverseStringCompleted);
  13. ws.ReverseStringAsync(textBox1.Text);
  14. }
  15.  
  16. privatevoid ReverseStringCompleted(object sender, ReverseStringCompletedEventArgs e)
  17. {
  18. textBox2.Text = e.Result;
  19. }

5.  测试程序的效果

用同步响应时,在Web Service中的方法结束前,程序无法响应

用异步响应时,在Web Service中的方法结束前,程序可以响应

ASP.NET WEB SERVICE 创建、部署与使用的更多相关文章

  1. 【转载】在 Visual Studio 2012 中创建 ASP.Net Web Service

    在 Visual Studio 2012 中创建 ASP.Net Web Service,步骤非常简单.如下: 第一步:创建一个“ASP.Net Empty Web Application”项目 创建 ...

  2. Visual Studio 2010中创建ASP.Net Web Service

    转自:http://blog.csdn.net/xinyaping/article/details/7331375 很多人在论坛里说,在Visual Studio 2010中不能创建“ASP.Net ...

  3. 在 Visual Studio 2010 中创建 ASP.Net Web Service

    第一步:创建一个“ASP.Net Empty Web Application”项目 第二步:在项目中添加“Web Service”新项目 第一步之后,Visual Studio 2010会创建一个仅含 ...

  4. (转)在 Visual Studio 2010 中创建 ASP.Net Web Service

    很多人在论坛里说,在Visual Studio 2010中不能创建“ASP.Net Web Service”这种project了,下面跟帖者云云,有的说这是因为微软已经将Web Service整合进W ...

  5. sharepoint 2010 创建自定义的ASP.NET Web Service (上)

    项目背景 根据客户需求在SharePoint 2010 中创建自定义的ASP.NET Web Service可以分为3种方式(我所知道的).废话少说,下面一一列举: 创建方式 MSDN 官方博客自己的 ...

  6. ASP.NET Web Service如何工作(3)

    ASP.NET Web Service如何工作(3) [日期:2003-06-26] 来源:CSDN  作者:sunnyzhao(翻译) [字体:大 中 小] 为了使.asmx句柄有可能反串行化SOA ...

  7. ASP.NET Web Service如何工作(1)

    ASP.NET Web Service如何工作(1) [日期:2003-06-26] 来源:CSDN  作者:sunnyzhao(翻译) [字体:大 中 小] Summary ASP.NET Web ...

  8. ServiceStack Web Service 创建与调用简单示列

    目录 ServiceStack 概念 ServiceStack Web Service 创建与调用简单示列 上篇文章介绍了ServiceStack是什么,本章进入主题,如何快速简单的搭建Service ...

  9. ASP.NET Web Service如何工作(2)

    ASP.NET Web Service如何工作(2) [日期:2003-06-26] 来源:CSDN  作者:sunnyzhao(翻译) [字体:大 中 小] HTTP管道一旦调用了.asmx句柄,便 ...

随机推荐

  1. angular封装jquery插件(组件)

    http://www.phloxblog.in/jquery-plugin-angular-js-directive-clean-html-approach/#.VaCWL9yUemJ

  2. 15 int *ptr= (int *)(&a+1)跨了整个数组长度

    分析以下程序,输出结果 2,5 #include<stdio.h> int main() { ]={,,,,}; ); printf(),*(ptr-)); ; } 分析: a 代表的是i ...

  3. 2.strcpy使用注意(2)

    分析下述代码: void test2() { char string[10],str1[10]; int i; for(i=0;i<10;i++) { srtr1='a'; } strcpy(s ...

  4. 基于GUI的简单聊天室01

    运用了Socket编程,gui,流的读入和写出,线程控制等 思路: 1.首先是在客户端中先建立好聊天的GUI 2.建立服务器端,设置好端口号(用SocketServer),其中需要两个boolean变 ...

  5. DevExpress WPF入门指南:如何自动或手动添加DXSplashScreen控件

    <DevExpress v17.2 版本更新公开课>点击报名 DevExpress WPF 的 DXSplashScreen 控件在应用加载的时候显示一个启动界面.添加DXSplashSc ...

  6. Beand的高级特征

    Spring程序中,Java Bean一般与Spring是非耦合的,不会依赖于Spring类库.这也是Spring的优点. 实现BeanNameAware接口获取本bean的id属性 BeanName ...

  7. hibernate 各种主键生成策略(转)

    http://www.cnblogs.com/kakafra/archive/2012/09/16/2687569.html 1.assigned 主键由外部程序负责生成,在 save() 之前必须指 ...

  8. avalonJS-源码阅读(2)

    上一篇文章讲述的avalon刷页面所用到的几个函数. 这篇则是主要讲avalon 对刷DOM刷出来的avalon自定义属性如何处理的. 目录[-] avalon页面处理(2)数据结构解析avalon标 ...

  9. python @修饰符的几种用法

    http://www.360doc.com/content/17/0715/16/10408243_671545922.shtml http://www.cnblogs.com/Egbertbaron ...

  10. Python id

    # id()函数可以帮我们查看一个变量的内存地址 a = 10 b = 30 print(id(a)) print(id(b)) lst = ["周杰伦","麻花藤&qu ...