首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

应用C#创建webservice及三种调用方式

2012-12-24 
使用C#创建webservice及三种调用方式]?  这是因为soap是基于http协议上的,客户端无法知道webservice位于那

使用C#创建webservice及三种调用方式

]?
  这是因为soap是基于http协议上的,客户端无法知道webservice位于那个服务器上。在实际应用中,比如http://www.ourfly.com上放置这个webservice,则Namespace改为http://www.ourfly.com/webserver.?
  下面我们给这个webservice添加一个方法。?
  // [WebMethod]?
  // public string HelloWorld()?
  // {?
  // return "Hello World";?
  // }?
  微软帮我们写好了一个,接着添加一个方法。方法名称叫show.?
  [WebMethod]?
  public string show(string yourname)?
  {?
  return “http://www.ourfly.com”+”欢迎”+yourname;?
  }?
  现在,就可以运行了,按F5,点击show,输入你的名字,然后点击invote?
  看到了吧。?
  <?xml version="1.0" encoding="utf-8" ?>?
   <string xmlns="http://tempuri.org/">http://www.ourfly.com欢迎yyg</string>?
  成功了。打开bin目录,Vs.net已经将proxy做好了.webserver.dll.?
  现在我们在不同的环境下测试:?
  1. 打开vs.net,新建”windows应用程序”工程,命名为Client,增加按钮,文本框。?
  现在要用到代理了,右键单击右边的reference(引用),选择”添加引用”,选择浏览,找到webserver目录下的bin目录下的webserver.dll?
  再加入一个system.web.webservices的引用,在列表中有。?
  在form1.cs里,加入?
  using System.Web.Services;?
  using webserver;?
  然后在?
  private System.Windows.Forms.Button button1;?
  private System.Windows.Forms.TextBox textBox1;?
  后面,插入?
  private webserver.service1 Client?
  建立一个service1的实例。双击按钮,代码如下:?
  private void button1_Click(object sender, System.EventArgs e)?
  {?
  Client =new Service1();?
  string name;?
  name=Client.show("龙卷风.NET"应用C#创建webservice及三种调用方式;?
  textBox1.Text=name;?
  }?
  按F5,运行工程,点击按钮,文本框中显示?
  http://www.ourfly.com欢迎龙卷风.NET?
  2. Asp.NET web窗口的测试?
  方法与上面的一模一样,添加引用,建立service1的实例?
  在此不在细说。?
  3.在VB中测试?
  这个就要相对来说复杂一些?
  首先在vb中建立一个”标准EXE”的工程。添加引用:Microsoft Soap Type library。注意:如果没有安装Microsoft Soap Toolkit,是没有这个类型库的。?
  可以在http://www.ourfly.com中下载。?
  添加一个text?
  Private Sub Form_Load()?
   Text1.Text = add()?
  End Sub?
  Public Function Add() As String?
  Dim objSoapClient As New SoapClient?
   objSoapClient.ClientProperty("ServerHTTPRequest"应用C#创建webservice及三种调用方式?= True?
  Call objSoapClient.mssoapinit("http://localhost/webserver/service1.asmx?WSDL", "Service1", "Service1Soap"应用C#创建webservice及三种调用方式?
  这句也可以?
  objSoapClient.mssoapinit("http://localhost/webserver/service1.asmx?WSDL"应用C#创建webservice及三种调用方式?
   Add = objSoapClient.Show("龙卷风.NET"应用C#创建webservice及三种调用方式?
  End Function?
  调试成功需要注意的:?
  运行服务端webservice的程序,出现下面时?
  支持下列操作。有关正式定义,请查看服务说明。?
  点击服务说明,会得到完整的wsdl文件?
  http://localhost/webserver/Service1.asmx?WSDL?
  我们就要使用这个文件,其中包含了我们定义的方法等等。?
  Mssoapinit(bstrWSDLFile as string,[bStrServiceName as string ],[bStrport as string ] ,[bstrWSMLDile as string])的用法:?
  其中第二个,第三个参数在wsdl文件中可以找到。也可以省略。?
  后续:还有从COM中生成wsdl文件等等,我会陆续推出的。

热点排行