2013-07-16 105 views
0


托管主机时在IIS 7.5(W2008)的WCF服务没有影响,我们有时会在客户端上的错误说:

“格式化抛出一个异常,而试图反序列化消息:。尝试反序列化参数http://tempuri.org/:defaultText发生错误的的InnerException消息是“发生错误,反序列化System.String类型的对象的最大字符串内容长度配额(8192)已被超过而读取XML data。这个配额可以通过改变创建XML阅读器时使用的XmlDictionaryReaderQuotas对象的MaxStringContentLength属性来增加,第148行,位置106.',请参阅InnerException获取更多细节。system.serviceModel配置对WCF服务在IIS 7.5

所以我们在服务器上的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-have-no-effect-wcf-iis-7-vs2010-net-401

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

非常感谢提前!

回答

0

我解决它通过创建“无名”绑定:

在。 NET 4,配置已经大大简化。举例来说,如果你没有名字的属性创建绑定标签,它将被应用到相同类型的所有绑定:

<binding someConfig="someValue"/> 

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

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

0

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

+0

的程序池在集成模式下运行:/ –