ASMX Web服务引用如何设置等效于MaxReceivedMessageSize

Gus*_*avo 6 c# web-services asmx soaphttpclientprotocol soap-client

Web Service是ASMX Web服务(不是WCF)

我收到一个错误

已超出传入邮件的最大邮件大小限额(65536).要增加配额,请在相应的绑定元素上使用MaxReceivedMessageSize属性

我在使用Visual Studio为您添加"Web引用"时生成的代理(请注意我不添加"服务引用",而是使用Web引用)...这将创建一个继承自的代理 SoapHttpClientProtocol

任何人都可以帮我弄清楚如何MaxReceivedMessageSize为这种方法设置等价物?(HttpBinding.MaxReceivedMessageSize = Int32.MaxValue如果我使用WCF,我要求相当于做)

Wik*_*hla 4

此消息是 WCF 特定的。我怀疑您正在通过 WCF 客户端代理调用 ASMX 服务(客户端类继承自ClientBase)。另一方面,典型的 ASMX 客户端代理继承自SoapHttpClientProtocol.

诀窍是,如果您只是在 Visual Studio 中“添加服务引用”,则默认情况下会创建类似 WCF 的代理。为了创建旧类型代理,您应该单击代理创建器对话框上的“高级”,然后单击高级属性对话框上的“添加 Web 引用”或wsdl.exe从命令行调用该工具。

在“旧”中创建的代理没有任何消息配额。

尽管如此,不建议在服务器和客户端使用旧版 ASMX 技术