C# 服务器堆栈跟踪:在System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerializate
我有一个WCF服务,它托管在一台服务器上,这个服务有这样一个类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]
[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],但没有收获:嗯,如果您将字段更改为属性,会发生什么?