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

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

在多方搜寻探索尝试之后,终于找到了解决方案,那就是只要将配置文件放在宿主文件的相同目录, 并且将配置文件的名称改成和宿主文件同名(包括扩展名)再加上.config之后,就可以让VB/VBA/Script 来使用配置文件中定义的绑定去调用WCF服务。如果是vbs文件(vb script),由于执行vbs文件的是 cscript.exe或者wscript.exe,缺省情况下我们系统都是使用wscript.exe来执行的,这时候你可以把配 置文件放在系统目录的system32下,名为wscript.exe.config.

如果是VBA宏的话,要看是word还是excel,或者其他。因为不同的类型其配置文件名不一样。如果是 word,那么配置文件名称应该是WINWORD.EXE.config,如果是excel,配置文件名应该是: Excel.exe.config.其他类型依次类推。

如果是VB程序的话,假如我们的程序名为test.exe,那么配置文件名称为test.exe.config.

不过需要注意的是,如果COM(VB/VBA/Script)利用服务标记调用WCF服务需要使用配置文件的话,我们 只能使用类型化契约,不能使用mex契约和WSDL契约(具体如何使用类型化契约、MEX契约、WSDL契约,请 参看我以前的文章。COM(VB/VBA/Script)利用服务标记调用WCF服务之一使用类型化契约、COM (VB/VBA/Script)利用服务标记调用WCF服务之二使用MEX契约、COM(VB/VBA/Script)利用服务标记调用WCF 服务之三使用WSDL契约),这个可能和标记字符串有关系,细心的同学可能发现,类型化标记字符串中的 binding和.net中的配置是一样的,而MEX和WSDL标记字符串中的binding是固定的。  为了更加清晰一点 ,下面就以VBS中以类型化契约服务标记调用WCF为例,由于这个系列的WCF服务端基本都相同,不过这次 由于我们为了制造返回超过65536个字符的消息所以对服务端的Service1.svc.cs文件做部分更改,更改后 的文件内容如下:using System;

using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace WCFServiceMoniker
{
public class Service1 : IService1
{
public string SayHello(string yourwords)
{
return string.Format("Hello World! You entered: {0}{1}", yourwords,new string('A',65536) );
}
}
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, script
, vba
, exe调用
, 配置
, 标记
, 服务
, vb script
system
,以便于您获取更多的相关知识。

时间: 2024-12-31 19:23:59

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

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

前面我们介绍了使用MEX契约的服务标记在COM中调用WCF服务,这种方式是通过MEX终结点动态取得元 数据,使用起来是比较方便:但是有时服务的元数据中可能包含恶意用户可以利用的关于应用程序的敏感 信息,也就是说为了安全考虑有些服务可能不会通过MEX公布元数据信息.如果哦某些服务没有公布元数 据信息,用类型化有比较麻烦,针对这种情况我们该如何在COM中调用WCF服务呢?这时我们可以使用WSDL 契约来进行WCF服务的调用,使用这种方式和使用MEX类似,同样不需要进行类型的注册,信息都是通过动 态得

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