绑定到运行时的Web服务的具体的实现

日期: 2008-05-15 作者:Michèle Leroux Bustamante 来源:TechTarget中国

问:请问你是否可以提供一个相关的文档的联接,以使我可以在 .NET里绑定到运行时的一个Web服务的具体的实现?我是否可以在一次编译的时间的里面使用WSDL工具来创建一个代理?并随后改变运行时的URL(或者该代理的别的属性),以允许一个服务的具体的实现的进入?有没有其他的机制或者工具集能更好的来完成这些任务呢?如果在回答中能有相关的东西,我很愿意能够去异步的激活Web服务。   答:首先让我们先来回答在运行时的端点动态的调用一个服务的问题。你可以很简单的通过设定代理类的URL属性来完成。这个是代理的基本类中对公众开放的一个可访问属性,System.Web.Services.Protocols.S……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

问:请问你是否可以提供一个相关的文档的联接,以使我可以在 .NET里绑定到运行时的一个Web服务的具体的实现?我是否可以在一次编译的时间的里面使用WSDL工具来创建一个代理?并随后改变运行时的URL(或者该代理的别的属性),以允许一个服务的具体的实现的进入?有没有其他的机制或者工具集能更好的来完成这些任务呢?如果在回答中能有相关的东西,我很愿意能够去异步的激活Web服务。

  答:首先让我们先来回答在运行时的端点动态的调用一个服务的问题。你可以很简单的通过设定代理类的URL属性来完成。这个是代理的基本类中对公众开放的一个可访问属性,System.Web.Services.Protocols.SoapHttpClientProtocol.。该属性在构造函数中按照以下的方式被初始化,同时你可以在调用任何的方法之前忽略不考虑这一点。

  public MyService() {
  this.Url = "http://localhost/MyService/service1.asmx";
  }

  我不建议你修改任何的代理类的内部的东西——如果你能够避免,你不应该修改自动生成的代码。这给了你重新生成那个代理的灵活性,例如当有新的方法要被加入进去的时候,可以避免去又一遍的修改那个代理成为一个新的URL终端。你也可以异步的使用BeginXXX()和EndXXX()方法调用所有该代理提供的方法。每一个Web服务方法可以通过他的.NET代理异步地或者同步地被访问。

  回到关于服务终端的运行时的选择上来,你可以考虑这些终端必须匹配代理的Web服务的WSDL绑定。所以,这就是意味着你只可以设置那些终端的URL属性,而那些属性把每一个方法作为代理的WebServiceBindingAttribute来实现的。多服务实现相同的WSDL绑定能做以下的一些事情:

  1.他们是服务的一个精确的复制,很可能是为了多机系统之间的负载平衡服务——从而他们在不同的终端给出但是却能够语义上的相互替换。

  2.通过使用基于界面的WSDL绑定,多服务正实现一些方法或者所有的方法,这些方法和WSDL规定中的一样。例如,如果一个工业标准WSDL被设计来提服务应该支持的供命名空间和消息定义,那么这就很可能要多于一个的公司来共同实现一个具有一致性的通用的服务绑定。这样,一个简单的消息就可以被不同公司拥有的不同服务终端所处理。你可以从一个共享的WSDL文档标准实现一个你的服务中的一个简单的消息(方法),甚至从多个共享的WSDL文档规范实现多消息(方法)。

  关键是在于,你可以动态的修改终端的URL,但是你需要明白在何种状况和环境下这样是可以做的:那就是代理所预计的WSDL绑定将可以被该服务实现。

相关推荐

  • SAP收购CallidusCloud 与Salesforce竞争

    一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]

  • 联合创新,携手共赢 华为与Commvault签署全球合作联盟协议

    【中国,上海,2015年9月19日】在2015年华为云计算大会上,全球领先的信息与通信解决方案供应商华为与美国知名的数据管理软件及相关服务主要供应商Commvault签署全球合作联盟协议。基于合作协议,双方将会加大投入数据中心备份解决方案在云化环境下的“可服务化”技术研究 。Commvault公司全球业务发展副总裁Andreas May、华为IT数据中心解决方案总裁马力出席签约仪式。

  • API设计如龙生九子 各不相同

    IT咨询管理公司CA Technologies对API产业做了个问卷调查,问卷内容涉及API设计风格以及管理部署的新动向。调查结果表明,JSON与XML可谓两分天下。

  • .NET架构师:函数式语言做领域驱动设计

    Scott一位.NET架构师,同时也是掌握函数式编程的作者,他很欣赏函数式编程,对于Scott来说,面向对象编程的那些概念也很恐怖,比如多态、泛型、继承、协变等。