System.ServiceModel.Channels.ReceivedFault 在 IIS 托管的 WCF 调用中导致 SerializationException

Ste*_*ham 5 asp.net iis wcf exception

我在 IIS 托管的 WCF 服务中进行了服务调用,该服务正在通过 HTTP 调用同一 IIS 实例中的另一个 WCF 服务。通常,如果第二个服务返回FaultException,则会将其转发给第一个服务的调用者。然而,就在最近,iis 服务偶尔会在收到序列化异常后关闭。

Type 'System.ServiceModel.Channels.ReceivedFault' in Assembly 'System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.

System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(System.RuntimeType)
    System.Runtime.Serialization.FormatterServices.GetSerializableMembers(System.Type, System.Runtime.Serialization.StreamingContext)
    System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo()
    System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(System.Object, System.Runtime.Serialization.ISurrogateSelector, System.Runtime.Serialization.StreamingContext, System.Runtime.Serialization.Formatters.Binary.SerObjectInfoInit, System.Runtime.Serialization.IFormatterConverter, System.Runtime.Serialization.Formatters.Binary.ObjectWriter, System.Runtime.Serialization.SerializationBinder)
    System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo, System.Runtime.Serialization.Formatters.Binary.NameInfo, System.Runtime.Serialization.Formatters.Binary.NameInfo)
    System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(System.Object, System.Runtime.Remoting.Messaging.Header[], System.Runtime.Serialization.Formatters.Binary.__BinaryWriter, Boolean)
    System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(System.IO.Stream, System.Object, System.Runtime.Remoting.Messaging.Header[], Boolean)
    System.Runtime.Remoting.Channels.CrossAppDomainSerializer.SerializeObject(System.Object, System.IO.MemoryStream)
    System.AppDomain.Serialize(System.Object) 
   System.AppDomain.MarshalObject(System.Object) 
Run Code Online (Sandbox Code Playgroud)

IIS 应用程序只有一个应用程序域,因此我不确定这个 CrossAppDomainSerializer 在哪里发挥作用。