1. 程式人生 > >呼叫WCF時報錯:伺服器未提供有意義的回覆;這可能是由協定不匹配、會話過早關閉或內部伺服器錯誤引起的。

呼叫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>