COM(VB/VBA/Script)利用服务标记调用WCF服务之三使用WSDL契约

前面我们介绍了使用MEX契约的服务标记在COM中调用WCF服务,这种方式是通过MEX终结点动态取得元 数据,使用起来是比较方便;但是有时服务的元数据中可能包含恶意用户可以利用的关于应用程序的敏感 信息,也就是说为了安全考虑有些服务可能不会通过MEX公布元数据信息。如果哦某些服务没有公布元数 据信息,用类型化有比较麻烦,针对这种情况我们该如何在COM中调用WCF服务呢?这时我们可以使用WSDL 契约来进行WCF服务的调用,使用这种方式和使用MEX类似,同样不需要进行类型的注册,信息都是通过动 态得到,不过有一个不好的地方就是需要使用其他手段来取得服务的WSDL描述。好了,下面就让我们开始 第一步:创建WCF服务   这个和上一篇的完全一样,具体请参见COM(VB/VBA/Script)利用服务标记调用 WCF服务之一使用类型化契约的第一步,如果您曾经按照上一篇文章做过相应的测试,你就可以直接使用 已经建好的服务了。 第二步:在Script中调用WCF服务

1:下面就是创建我们的Script文件了,我们起名为CallWCFService_wsdl.vbs,内容如下:

1'---------------------------------------------------------------
2' WSDL service moniker example
3'---------------------------------------------------------------
4
5 Set xmlhttp=CreateObject("Msxml2.XMLHTTP")
6 call xmlhttp.open("GET","http://localhost/WCFServiceMoniker/Service1.svc?wsdl",false)
7 xmlhttp.send
8 'MsgBox message will be truncated, but wscript.echo will not.
9 'wscript.echo xmlhttp.responseText
10 wsdlstr=xmlhttp.responseText
11
12mexMonikerString = "service:address='http://localhost/WCFServiceMoniker/Service1.svc'"
13mexMonikerString = mexMonikerString + ", wsdl='" & wsdlstr & "'"
14mexMonikerString = mexMonikerString + ", binding=WSHttpBinding_IService1, 

bindingNamespace='http://tempuri.org/'"
15mexMonikerString = mexMonikerString + ", contract=IService1, 

contractNamespace='http://tempuri.org/'"
16
17' Create the service moniker object
18Set mexServiceMoniker = GetObject(mexMonikerString)
19
20' Call the service operations using the moniker object
21WScript.Echo mexServiceMoniker.SayHello("I am LazyBee, My blog is 

http://lazybee.cnblogs.com/ ")
22
23Set mexServiceMoniker = nothing
24Set xmlhttp=nothing
25

注意:在我们服务标记字符串中,包含服务地址、WSDL、绑定及命名空间、服务契约及命名空间四部 分内容。关于如何获得服务地址、绑定及命名空间、服务契约及命名空间请参见前一篇文章COM (VB/VBA/Script)利用服务标记调用WCF服务之二使用MEX契约的第二步

4 保存之后,直接双击运行,你就可以看到运行结果了:

出处:http://lazybee.cnblogs.com

本文配套源码:http://www.bianceng.net/dotnet/201212/757.htm

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索http
, wcf
, script
, 标记
, 服务
, vb script
, xmlhttp
, 动态调用wcf
, wcf动态调用
调用wsdl
wcf wsdl、wcf 生成wsdl、mtom wsdl wcf、wcf wsdl c、wcf 数据契约,以便于您获取更多的相关知识。

时间: 2024-11-01 08:46:52

COM(VB/VBA/Script)利用服务标记调用WCF服务之三使用WSDL契约的相关文章

COM(VB/VBA/Script)利用服务标记调用WCF服务之四:使用配置文件

这几天友人同学说他在COM利用服务标记调用WCF服务的时候遇到一个问题,就是他返回的的Soap消息 大于65536这个wsHttpBinding的缺省值,引发调用错误.需要将MaxReceivedMessageSize更改成可以容纳 大消息内容的值.在我前面的三篇文章中使用的都是缺省的wsHttpBinding,所以不存在这个问题.现在 需要更改缺省值自然就需要增加配置来达到目的.目前最关键的问题就是:是否能让VB/VBA/Script来使 用配置文件呢?如果可以,那如何让VB,VBA, Scr

COM(VB/VBA/Script)利用服务标记调用WCF服务之二使用MEX契约

第一步:创建WCF服务 上一篇我们使用类型化契约的服务标记在COM中调用WCF服务,不过这个有一 定的局限性,因为需要注册类型,所以需要.Net FrameWork,但是在很多情况下COM客户端所在的环境没有 .Net Framework,比如说在Excel中,需要调用一个WCF服务来计算某个单元格的值,而且这个Excel文件可 能分发到许多机器上,你总不能给每台机器都装一个.Net Framework,同时都去给它注册所需的类型吧. 针对这种场景,我们可以使用MEX契约的服务标记来动态得到服务

COM(VB/VBA/Script)利用服务标记调用WCF服务之一使用类型化契约

第一步:创建WCF服务 1 打开Visual Studio 2008, 新建一项目,我们这里建立一个Web站点,采用WCF Service Application模板,新项目名称为WCFServiceMoniker,如下图所示: 2 单击"Ok"之后,VS2008将为我们生成相应的目录结构和文件,如下: 3 为了简单,我们不对生成的目录结构做任何改动.接下来,我们打开IService1.cs文件,删除系统生成的操作契约,然后增加我们自己的契约如下: 1namespace WCFServ

jQuery Ajax调用WCF服务详细教程_jquery

这两天在写基于WCF服务的后台框架,过程中遇到了一些挫折,经过努力全部解决了,在此分享给大家,使用的工具是Visual Studio 2013. 该后台需要支持通过json来传递和接收数据. 首先,说说搭建过程. 第一步:创建WCF服务应用程序项目WCF. 第二步,创建服务使用的数据类 using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Sch

jQuery实现ajax调用WCF服务的方法(附带demo下载)_jquery

本文实例讲述了jQuery实现ajax调用WCF服务的方法.分享给大家供大家参考,具体如下: 关于AJAX调用WCF服务分为跨域和不跨域两种方式,今天咱们先介绍下不跨域下的调用方法.DEMO是在VS2008写的. 经过测试与研究,发现AJAX调用WCF服务必须满足以下条件 1.wcf的通讯方式必须使用webHttpBinding 2.必须设置<endpointBehaviors>节点的值 3.服务的实现必须添加标记 复制代码 代码如下: [AspNetCompatibilityRequirem

Silverlight同步(Synchronous)调用WCF服务

Silverlight的RIA应用中访问远端的WebService或WCF服务,都是通过异步线程模式调用的.在某些情况下我们的调用是需要同步进行,虽然Silverlight没有内置同步线程模式调用远端服务接口,但是我们可以通过多线程的处理来伪装出同步调用的实现.在.NET Framework的多线程编程中提供了丰富的线程接口,其中AutoResetEvent和ManualResetEvent在多线程编码中最为常用,本文将介绍如何通过AutoResetEvent的线程等待特性实现Silverlig

jQuery ajax调用WCF服务实例_jquery

恩,在由瘦客户端转换成胖浏览器端的"潮流"下,必然要使用JavaScript调用后台的各种服务. 屌丝所维护的产品通信都是使用的WCF服务,因此必然要学习这样的内容.借用jQuery强大的库,使用JavaScript访问WCF服务非常简便.同事研究了一个breeze库,那么屌丝就来试验一下ajax.这里把实现简单地记录以便马克一下,以后忘了就看这篇日志来作弊. 一.更改WCF服务的配置 默认情况下,WCF服务是不允许使用HTTP请求来访问的.我们需要将WCF服务的配置文件(注意如果有其

一起谈.NET技术,Silverlight同步(Synchronous)调用WCF服务

Silverlight的RIA应用中访问远端的WebService或WCF服务,都是通过异步线程模式调用的.在某些情况下我们的调用是需要同步进行,虽然Silverlight没有内置同步线程模式调用远端服务接口,但是我们可以通过多线程的处理来伪装出同步调用的实现.在.NET Framework的多线程编程中提供了丰富的线程接口,其中AutoResetEvent和ManualResetEvent在多线程编码中最为常用,本文将介绍如何通过AutoResetEvent的线程等待特性实现Silverlig

Silverlight同步(Synchro“.NET研究”nous)调用WCF服务

Silverlight的RIA应用中访问远端的WebService或WCF服务,都是通过异步线程模式调用的.在某些情况下我们的调用是需要同步进行,虽然Silverlight没有内置同步线程模式调用远端服务接口,但是我们可以通过多线程的处理来伪装出同步调用的实现.在.NET Framework的多线程编程中提供了丰富的线程接口,其中AutoResetEvent和ManualResetEvent在多线程编码中最为常用,本文将介绍如何通过AutoResetEvent的线程等待特性实现Silverlig