"读取XML数据时已超过"最大字符串内容长度配额(8192)"通过mexAddress名字对象调用WCF

The*_*ite 6 asp.net wcf

我试图通过mex从传统的ASP页面调用WCF服务.我使用MSDN上的详细信息进行了呼叫,但是如果我传回超过8K的数据量,我会得到一个例外说明:

读取XML数据时已超出最大字符串内容长度配额(8192).通过更改创建XML阅读器时使用的XmlDictionaryReaderQuotas对象的MaxStringContentLength属性,可以增加此配额...

.NET客户端很容易解决这个问题:您可以将客户端配置调整为与readerQuotas部分绑定,包括增加的配额.但是,由于我正在构建一个服务名字对象以传递给ASP中的GetObject调用,因此我无法访问要编辑的配置.如果它是一个VB6应用程序,我可以使用dllhost.exe.config,但事实并非如此.bindingConfiguration节点(和子节点)似乎不是我可以在名字对象字符串中设置的参数.

关于如何在ASP上下文中影响此参数的任何想法?带有名字字符串的ASP片段如下所示:

   Dim strXml, moniker, objProxy

   moniker="service:mexAddress='http://localhost/SomeApp/SomeServices/SomeService.svc/mex', "
   moniker=moniker + "address='http://localhost/SomeApp/SomeServices/SomeService.svc',"
   moniker=moniker + "contract=ISomeService, contractNamespace=http://foo.com, "
   moniker=moniker + "binding=WSHttpBinding_ISomeService, bindingNamespace=http://foo.com"

   Set objProxy = GetObject(moniker)

   strXml = objProxy.DoWork("foo", "bar")
Run Code Online (Sandbox Code Playgroud)

谢谢!

Shi*_*iji 2

尝试在服务器端的 wcf 绑定配置中设置 maxStringContentLength。