J'ai ce contrat de données:question contrat de données WCF
[DataContract(Namespace = Constants.ServiceNamespace)]
public enum UserEntityType
{
User = 0,
Group = 1,
IPAddress = 2
}
[DataContract(Namespace = Constants.ServiceNamespace)]
//[KnownType(typeof(UserEntity))]
public class UserEntity
{
[DataMember]
public UserEntityType EntityType;
[DataMember]
public string Value;
}
[DataContract(Namespace = Constants.ServiceNamespace)]
public class TemporaryPolicyData
{
[DataMember]
public DateTime EndTime;
[DataMember]
public string URL;
}
[DataContract(Namespace = Constants.ServiceNamespace)]
//[KnownType(typeof(TemporaryPolicyData))]
//[KnownType(typeof(UserEntity))]
public class TemporaryWhitelistData
{
[DataMember]
public UserEntity User;
[DataMember]
public TemporaryPolicyData Data;
}
[DataContract(Namespace = Constants.ServiceNamespace)]
//[KnownType(typeof(TemporaryWhitelistData))]
//[KnownType(typeof(UserEntity))]
public class WhitelistPolicyData
{
[DataMember]
public IEnumerable<TemporaryWhitelistData> TemporaryData;
[DataMember]
public IEnumerable<string> Websites;
[DataMember]
public IEnumerable<UserEntity> Users;
}
Je reçois cette erreur:
An unhandled exception of type 'System.ServiceModel.CommunicationException' occurred in mscorlib.dll
Additional information: There was an error reading from the pipe: The pipe has been ended. (109, 0x6d)
Cela semble être lié au contrat de données défini ci-dessus, parce que si je le simplifier, il retourne des données.
La méthode d'opération qui donne cette erreur:
[OperationContract]
WhitelistPolicyData GetWhitelistPolicy();
Des InnerExceptions? Que voulez-vous dire en disant * simplyfied *? – Jan
L'exception interne indique "Informations supplémentaires: Une erreur s'est produite lors de la lecture du tube: le tube a été arrêté (109, 0x6d)". Simplifié signifie que j'ai exclu des champs WhitelistPolicyData TemporaryData et Utilisateurs – Ghita