呼叫WCF時報錯:伺服器未提供有意義的回覆;這可能是由協定不匹配、會話過早關閉或內部伺服器錯誤引起的。
報錯:伺服器未提供有意義的回覆;這可能是由協定不匹配、會話過早關閉或內部伺服器錯誤引起的。
可能原因:
1、WCF中不允許在協議中定義一個型別而傳輸其子型別. 除非在該型別上定義了[KnownType(typeof(子型別))]
2、WCF傳輸List<object>時序列化問題
WCF傳輸List集合時,在序列化時是有大小限制的,預設的可序列化的集合長度是65536,如果List的大小超出這個值就需要更改了配置了,在伺服器端的behavior配置中增加一行配置
<behavior name="WCFService.Behavior">
<serviceMetadata/>
<serviceDebug includeExceptionDetailInFaults="false" />
<dataContractSerializer maxItemsInObjectGraph="6553600"/>
</behavior>
並且在對應的binding配置中新增readerQuotas節點配置
<binding name="BasicWsHttpBinding">
<reliableSession enabled="true" />
<security mode="None">
<transport clientCredentialType="None" />
<message clientCredentialType="None" />
</security>
<readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binding>