从VB6调用WCF时如何增加maxReceivedMessageSize?

时间:2011-10-19 10:52:16

标签: wcf vb6 moniker

目前我有: 1)WCF设置返回一个xml块(特别是它是Exchange 2003中日历的内容)。 2)一个vb6表单,上面有一个命令,通过在服务名字对象上构建的对象访问WCF,包括WSDL合同文件的内容。

只有当传递的字符串具有可接受的大小时,才能正常工作。当我尝试返回在WCF端生成的整个xml时,我遇到以下错误: “已超出传入邮件的最大邮件大小配额(65536)。要增加配额,请在相应的绑定元素上使用MaxReceivedMessageSize属性。”

当我将绑定配置添加到WCF app-config中以增加maxReceivedMessageSize时,这没有任何效果 - 可能是因为VB6客户端对此无视。 (生成的WSDL协定甚至不包括其xml中的值)

阅读*,有人建议我需要在客户端进行类似的配置更改。所以我创建了一个VB6.EXE.CONFIG文件并将绑定配置详细信息复制到此文件中。然后,我将这个名字扩展到包括: binding = WSHttpBinding_IExchange,bindingNamespace ='Exchange',bindingConfiguration ='ExchangeBinding'

但是我仍然收到有关大小配额的相同错误消息。

当错误拼写上面的名字对象的binding或bindingNamespace元素时,我得到一个预期的错误,但是当错误拼写bindingConfiguration元素时,我没有得到任何错误,好像这个元素无论如何都是无关紧要的。

我现在似乎有件但不是工作解决方案。任何人的想法?

  • obj对象被声明为接口代理类型。然后将该名字对象设置为仅包括地址和绑定类型。由于您只使用wsHttpBinding的默认设置,因此不需要提供bindingConfiguration值。如果您需要覆盖绑定的任何默认设置,则可以提供名为file.exe.config的应用程序配置文件并将其放在客户端的程序目录中

1 个答案:

答案 0 :(得分:0)

就个人而言,我会创建一个从VB6调用的.NET COM公开库。 .NET库可以控制所有客户端绑定,VB6只是简单地与DLL通信并传递字符串。