【问题标题】:How can I increase the maxReceivedMessageSize when calling a WCF from VB6?从 VB6 调用 WCF 时如何增加 maxReceivedMessageSize?
【发布时间】:2011-12-10 20:01:20
【问题描述】:

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

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

当我在 WCF 应用程序配置中添加绑定配置以增加 maxReceivedMessageSize 时,这没有任何效果 - 大概是因为 VB6 客户端对此视而不见。 (生成的 WSDL 合约甚至不包括其 xml 中的值)

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

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

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

我现在似乎有部分,但没有有效的解决方案。有什么想法吗?

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

【问题讨论】:

  • 您的配置文件字面意思是“vb6.exe.config”吗?如果您的应用程序名称是 MyApp.exe,您是否尝试过“MyApp.exe.config”?

标签: wcf vb6 moniker


【解决方案1】:

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

【讨论】:

  • 您能否分享一些链接或参考资料以开始使用这种方法?
  • 网络搜索:“如何创建 .net COM 公开的 DLL”
猜你喜欢
  • 1970-01-01
  • 2012-12-17
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-10
相关资源
最近更新 更多