0


在 IIS 7.5 (W2008) 中托管 WCF 服务时,我们有时会在客户端收到错误消息:

“格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数时出错http://tempuri.org /:defaultText。InnerException 消息是“反序列化 System.String 类型的对象时出错。读取 XML 数据时超出了最大字符串内容长度配额 (8192)。可以通过更改 MaxStringContentLength 属性来增加此配额创建 XML 阅读器时使用的 XmlDictionaryReaderQuotas 对象。第 148 行,位置 106。'。有关更多详细信息,请参阅 InnerException。

所以我们在服务器的web.config中修改了basicHttpBinding的readerQuotas元素的MaxStringContentLength属性。但显然该服务忽略了 system.serviceModel 部分中的所有内容!如果 system.serviceModel 部分被删除,IIS 仍然提供默认的 basicHttpBinding。

我发现了更多关于这个问题的文章,例如: http ://social.msdn.microsoft.com/Forums/vstudio/en-US/2f990dec-79f5-4943-b238-44f0321148c3/changes-to-services-bindings-没有效果-wcf-iis-7-vs2010-net-401

但我不明白答案。有谁知道如何让 IIS/WCF 监听 web.config?

提前谢谢了!

4

2 回答 2

0

我通过创建“未命名”绑定来解决它:

在 .NET 4 中,配置已大大简化。例如,如果您创建一个没有 name 属性的绑定标记,它将应用于所有相同类型的绑定:

<binding someConfig="someValue"/>

您还可以使用协议映射来配置用于特定方案的默认绑定。例如:

<add scheme="http" binding="webHttpBinding"/>

于 2013-07-18T10:02:44.153 回答
0

我知道 web.config 的某些部分会被忽略,除非您的应用程序池在“集成”托管管道模式下运行...

于 2013-07-16T13:26:39.790 回答