知识大全 使用webservice解决多系统登陆问题

Posted 工程

篇首语:哪里有天才,我是把别人喝咖啡的功夫,都用在工作上的。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用webservice解决多系统登陆问题相关的知识,希望对你有一定的参考价值。

  微软 NET战略的一个比较重要的部分就是webservice 利用webservice我们可以创建真正有效的分布式应用程序

  下面 我们对webservice做一些说明

  假设A是客户端 B是webservice服务端 用户通过协议向服务器发送soap请求 webservice返回客户端XML格式的数据

  现在我们看一看创建一个webservice的大致过程

  服务端的webservice是必须要建的 中间的soap xml我们不用去关心 在客户端这边 比较重要的是如何从webservice取得对象?答案是用的是proxy对象 客户端由代理对象(proxy)负责与webservice的通信 所以在客户端使用webservice 完全和使用一个本地对象是一样的

  我们现在以一个简单的实例来说明

  打开 新建工程(  web服务) 在位置中键//localhost/webserver 其中webserver就是工程的名字 确定后 出现一个Service asmx cx 双击 出现代码窗口

  using  System

  using  System Collections

  using  System ComponentModel

  using  System Data

  using  System Diagnostics

  using  System Web

  using  System Web Services

  namespace  webserver

  

  ///  <summary>

  ///  Service   的摘要说明

  ///  </summary>

  ( )

  public  class  Service     System Web Services WebService

  

  public  Service ()

  

  //CODEGEN 该调用是  ASP NET  Web  服务设计器所必需的

  InitializeComponent()

  

  #region  Component  Designer  generated  code

  //Web  服务设计器所必需的

  private  IContainer  ponents  =  null

  ///  <summary>

  ///  设计器支持所需的方法    不要使用代码编辑器修改

  ///  此方法的内容

  ///  </summary>

  private  void  InitializeComponent()

  

  

  ///  <summary>

  ///  清理所有正在使用的资源

  ///  </summary>

  protected  override  void  Dispose(  bool  disposing  )

  

  if(disposing  &&  ponents  !=  null)

  

  ponents Dispose()

  

  base Dispose(disposing)

  

  #endregion

  //  WEB  服务示例

  //  HelloWorld()  示例服务返回字符串  Hello  World

  //  若要生成 请取消注释下列行 然后保存并生成项目

  //  若要测试此  Web  服务 请按  F   键

  // [WebMethod]

  // public  string  HelloWorld()

  //

  // return  Hello  World

  //

  

  

  下面在( )处加入

  [WebService(Namespace=//localhost/webserver/ )]

  这是因为soap是基于协议上的 客户端无法知道webservice位于那个服务器上 在实际应用中 比如上放置这个webservice 则Namespace改为

  下面我们给这个webservice添加一个方法

  // [WebMethod]

  // public  string  HelloWorld()

  //

  // return  Hello  World

  //

  微软帮我们写好了一个 接着添加一个方法 方法名称叫show

  [WebMethod]

  public  string  show(string  yourname)

  

  return  + 欢迎 +yourname

  

  现在 就可以运行了 按F 点击show 输入你的名字 然后点击invote

  看到了吧

  <?xml  version=   encoding= utf   ?>

  <string  xmlns= > >欢迎yyg</string>

  成功了 打开bin目录 已经将proxy做好了 webserver dll

  现在我们在不同的环境下测试

   打开 新建 windows应用程序 工程 命名为Client 增加按钮 文本框

  现在要用到代理了 右键单击右边的reference(引用) 选择 添加引用 选择浏览 找到webserver目录下的bin目录下的webserver dll

  再加入一个system web webservices的引用 在列表中有

  在form cs里 加入

  using  System Web Services

  using  webserver

  然后在

  private  System Windows Forms Button  button

  private  System Windows Forms TextBox  textBox

  后面 插入

  private  webserver service   Client

  建立一个service 的实例 双击按钮 代码如下

  private  void  button _Click(object  sender   System EventArgs  e)

  

  Client  =new  Service ()

  string  name

  name=Client show( 龙卷风 NET )

  textBox Text=name

  

  按F 运行工程 点击按钮 文本框中显示

  欢迎龙卷风 NET

   Asp NET  web窗口的测试

  方法与上面的一模一样 添加引用 建立service 的实例

  在此不在细说

   在VB中测试

  这个就要相对来说复杂一些

  首先在vb中建立一个 标准EXE 的工程 添加引用 Microsoft  Soap  Type  library 注意 如果没有安装Microsoft  Soap  Toolkit 是没有这个类型库的

  可以在中下载

  添加一个text

  Private  Sub  Form_Load()

  Text Text  =  add()

  End  Sub

  Public  Function  Add()  As  String

  Dim  objSoapClient  As  New  SoapClient

  objSoapClient ClientProperty( ServerHTTPRequest )  =  True

  Call  objSoapClient mssoapinit( ?WSDL   Service   Service Soap )

  这句也可以

  objSoapClient mssoapinit( ?WSDL )

  Add  =  objSoapClient Show( 龙卷风 NET )

  End  Function

  调试成功需要注意的

  运行服务端webservice的程序 出现下面时

  支持下列操作 有关正式定义 请查看服务说明

  点击服务说明 会得到完整的wsdl文件

  ?WSDL

  我们就要使用这个文件 其中包含了我们定义的方法等等

  Mssoapinit(bstrWSDLFile  as  string [bStrServiceName  as  string  ] [bStrport  as  string  ]  [bstrWSMLDile  as  string])的用法

cha138/Article/program/ASP/201311/21802

相关参考

知识大全 WebService中使用自定义类的解决方法

WebService中使用自定义类的解决方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 跑跑卡丁车到登陆页面就一闪没了自己关了

跑跑卡丁车到登陆页面就一闪没了自己关了错误代码114.相信大部分朋友都不陌生了这个代码比其他代码都要麻烦的多因为玩家并不知道自己到底是哪个软件出了问题和跑跑产生冲突所以我去查了很多资料收集了解决114

知识大全 英雄联盟登陆失败请检查网络是什么原因

英雄联盟登陆失败请检查网络是什么原因出现这个问题一般是网络问题,网络没连上或者网络不稳定,但我觉得你应该是网络不稳定造成的一:可能是你的网络不太稳定,造成掉线,解决办法:检查一下网络是否正常,可以重启

知识大全 为什么我在登陆163免费邮箱时总是提示登录邮箱初始化遇到问题,别的电脑都可以登陆进去

为什么我在登陆163免费邮箱时总是提示登录邮箱初始化遇到问题,别的电脑都可以登陆进去系统补一漏洞,升级一下你ie,清除历史记录看看!163免费邮箱登陆找他激活的邮箱哦有163免费邮箱登陆吗?直接注册一

知识大全 微信登陆显示连接失败,请检查网络设置什么原因,怎么办

微信登陆显示连接失败,请检查网络设置什么原因,怎么办?你好这是iphone微信服务器的问题,你的手机没有问题,今天出现了很多类似情况,应该过一天就能解决。希望可以帮到你,iphone登不上微信,显示:

知识大全 192.168.1.1打不开登陆页面 怎么解决啊 谢谢

192.168.1.1打不开登陆页面怎么解决啊谢谢你好!在路由器上拨号!【路由器设置教程】【家庭网络环境布线】:1、有电信猫:电信猫----路由器wan口;路由器lan口----电脑;2、没得电信猫:

知识大全 跪求邮政网银登陆页面看不到验证码解决方法。急 急 急 急 急

跪求邮政网银登陆页面看不到验证码解决方法。。。。急急急急急您好,请您使用ie浏览器,关闭类似保护类软件,更新flash软件后再登录个人网银试一下。急求一条关于表哥结婚的祝福语,要英语的,带翻译!急!P

知识大全 微信会无缘无故掉线,重新登陆后聊天记录就没有了,每次都这样,怎么回事,可以弄保存聊天记录吗

微信会无缘无故掉线,重新登陆后聊天记录就没有了,每次都这样,怎么回事,可以弄保存聊天记录吗这样是因为你的微信出问题了,或者是你的手机系统出问题了。微信无故掉线,大多情况是手机系统的问题,你先把微信卸载

什么是互斥?什么是“饿死”问题?如何处理和解决饿死问题?

  互斥是指多个进程竞用资源时的使用次序和排它性占用或封锁资源的条件。  在分布式多机系统中,由于互斥算法不完善或资源分配存在问题而使某一进程总是得不到它所需的资源,始终在互斥区外等待,进程得不到运行

什么是互斥?什么是“饿死”问题?如何处理和解决饿死问题?

  互斥是指多个进程竞用资源时的使用次序和排它性占用或封锁资源的条件。  在分布式多机系统中,由于互斥算法不完善或资源分配存在问题而使某一进程总是得不到它所需的资源,始终在互斥区外等待,进程得不到运行