C# Can';在WCF中序列化字节数组

C# Can';在WCF中序列化字节数组,c#,arrays,wcf,binding,bytearray,C#,Arrays,Wcf,Binding,Bytearray,我使用的是WCF API,当我尝试下载文件时,无法用字节数组序列化对象。文件大小很小:104字节。 目标是: [DataContract] public class File { [DataMember] public string Name { get; set; } [DataMember] public byte[] Data { get; set; } } 我尝试在类中使用KnownType(typeof(byte

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

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

}
我尝试在类中使用KnownType(typeof(byte))、KnownType(typeof(byte[])和KnownType(typeof(Array)),但没有成功

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

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

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


普拉斯,帮帮我

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

您已经为服务器更改了它,但是您的客户端绑定是否配置为接收大于默认16K的消息大小?我真的很困惑。您是在使用WCF API还是在制作一个?你为什么要尝试序列化或反序列化你的下载?我只是重新阅读了这个问题,看到你的文件只有104字节,而不是104K,所以忽略我的其他评论。@A.sharif我使用的是WCF API,我正在做一个允许下载文件的方法。不是大文件。最大容量为20 MB的文件。我在这里读了很多关于它的问题,我尝试了所有的解决方案,就像我在这里写的那样。他们中的任何一个都对我有用。所以你要么是一个服务的客户,要么就是一个服务。你是哪一个?