Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 服务器堆栈跟踪:在System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerializate_C#_Wcf - Fatal编程技术网

C# 服务器堆栈跟踪:在System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerializate

C# 服务器堆栈跟踪:在System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerializate,c#,wcf,C#,Wcf,我有一个WCF服务,它托管在一台服务器上,这个服务有这样一个类 [DataContract] [Serializable()] public class FruitObject { [DataMember] public string fruitName; [DataMember] public byte[] data; } [ServiceContract] public interface IFruits { [OperationContract]

我有一个WCF服务,它托管在一台服务器上,这个服务有这样一个类

[DataContract]
[Serializable()]
public class FruitObject
{
    [DataMember]
    public string fruitName;
    [DataMember]
    public byte[] data;
}

[ServiceContract]
public interface IFruits
{
    [OperationContract]
    FruitObject[] GetFruitsFromCrate(string cratePosition, string[] fruitNames);
}
现在我用另一台服务器上的代理调用它

 SomeProject.WebServices.Inside.FruitObject[] fruits = proxy.GetFruitsFromCrate(cratePosition, fruitNames);
例外情况

说明:类型 中的“System.ServiceModel.Dispatcher.NetDispatcherFaultException” 程序集'System.ServiceModel,版本=4.0.0.0,区域性=中性, PublicKeyToken=I removed it'未标记为可序列化

服务器堆栈跟踪:在 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerializationObject obj,ISurrogateSelector代理选择器,StreamingContext上下文, SeroObjectInfoinit SeroObjectInfoinit,IFormatterConverter转换器, ObjectWriter ObjectWriter,SerializationBinder活页夹


通过将其添加到web.config中修复了此问题

 1: <configuration>
   2:   <system.serviceModel>
   3:     <bindings>
   4:       <basicHttpBinding>
   5:         <binding name="myBindingForBigArrays"
   6:             maxReceivedMessageSize="2147483647">
   7:           <readerQuotas
   8:               maxDepth="64"
   9:               maxStringContentLength="2147483647"
  10:               maxArrayLength="2147483647"
  11:               maxBytesPerRead="4096"
  12:               maxNameTableCharCount="16384"/>
  13:         </binding>
  14:       </basicHttpBinding>
  15:     </bindings>

readerQuotas出现了问题,因为它被设置为默认值,服务反序列化失败。

我也尝试了[Serializable],但没有收获:嗯,如果您将字段更改为属性,会发生什么?