首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“读取XML数据时超过了最大字符串内容长度配额(8192)”,通过mexAddress命名器调用WCF。

“读取XML数据时超过了最大字符串内容长度配额(8192)”,通过mexAddress命名器调用WCF。
EN

Stack Overflow用户
提问于 2009-06-17 18:08:44
回答 2查看 4.4K关注 0票数 6

我试图从一个经典的ASP页面通过mex调用WCF服务。我已经使用了MSDN上的详细信息来调用,但是如果我传回超过8K的数据量,就会得到一个异常,说明如下:

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

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

对于我如何在ASP上下文中影响这个参数,有什么想法吗?下面引用了带有命名器字符串的ASP代码段:

代码语言:javascript
复制
   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")

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2009-06-22 20:57:49

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

票数 2
EN

Stack Overflow用户

发布于 2009-06-23 01:05:28

我的理解是,服务:mexAddress实际上使用COM接口后面的WCF客户端。如果是这样的话,那么您可以将WCF配置存储在一个名为«foo».exe.config的文件中,其中foo被可执行文件的名称所替换。

如果在IIS6或IIS7中运行ASP,则运行ASP的EXE可能是w3wp.exe,这意味着需要将配置放到一个名为w3wp.exe.config的文件中,该文件位于目录c:\Windows\system32 32\inetsrv中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1008691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档