可以';t序列化WCF中的字节数组

本文关键字:字节 字节数 数组 WCF 序列化 可以 | 更新日期: 2023-09-27 18:00:33

我正在使用WCF API,当我尝试下载文件时,无法使用字节数组序列化对象。文件大小很小:104字节。对象是:

[DataContract]
  public class File
 {
        [DataMember]
        public string Name { get; set; }
        [DataMember]
        public byte[] Data { get; set; }
}

我曾尝试在类中使用KnowType(typeof(byte))、KnowType[类型of(byte[]))和KnownType(typeof[数组]),但没有成功。

我也尝试过用字节数组的Base64返回一个字符串,但没有成功。

我在客户端没有错误消息。WCF只是在我收到超时消息之前不会返回对象(我已经等待了1分钟以上)。我还尝试在网络配置中更改大小。以下是我的绑定配置:

<bindings>
  <wsHttpBinding>
    <binding name="wsHttpBinding" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" 
             closeTimeout="0:10:00" openTimeout="1:10:00" receiveTimeout="1:10:00" sendTimeout="1:10:00" allowCookies="false" 
             messageEncoding="Mtom" textEncoding="utf-8">
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" 
                    maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
      <reliableSession enabled="true" inactivityTimeout="00:25:00"/>
      <security mode="None"/>
    </binding>
  </wsHttpBinding>
</bindings>

普莱斯,帮帮我!!

可以';t序列化WCF中的字节数组

几天后,我发现了问题的解决方案。问题出在客户端,而不是像我想的那样出在服务器端。我忘记在客户端使用maxReceivedMessageSize标记了。因此,我复制了绑定块中的所有内容,并将其粘贴到客户端webconfig中,这样就可以工作了。