J'obtiens l'erreur suivante sur mon application client
There was an error reading from the pipe: De pipe is beëindigd. (109,0x6d).
en utilisant une implémentation spécifique de mon OperationContract. Voici un exemple concis et concis. Mes DataContracts sont comme ceci :
[DataContract]
public class Person
{
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
}
[DataContract]
public class Employee : Person
{
[DataMember]
public string Function { get; set; }
}
Et mon contrat de service ressemble à ceci :
[Contrat de service] interface publique IAuthentication {
[OperationContract]
[WebGet]
Person GetDeveloper();
[OperationContract]
[WebGet]
Person GetArchitect();
}
J'implémente ce service comme la classe suivante :
public class Authentication : IAuthentication
{
public Person GetDeveloper()
{
Person architect = new Person()
{
FirstName = "Asghar",
LastName = "Panahy"
};
return architect;
}
public Person GetArchitect()
{
Employee architect = new Employee()
{
FirstName = "Asghar",
LastName = "Panahy",
Function = "Architect"
};
return architect;
}
}
Remarque : Les deux méthodes renvoient le même type, mais la première instancie une personne et la renvoie, tandis que la seconde instancie un employé, qui est aussi une personne.
Lorsque je l'appelle depuis le client, je n'obtiens pas d'erreur sur le serveur mais du côté du client :
Console.WriteLine(" Connecting to Authenticate service... ");
NetNamedPipeBinding myBinding = new NetNamedPipeBinding("Authentication.Endpoint"); ;
EndpointAddress myEndpoint = new EndpointAddress("net.pipe://localhost/authentication"); ;
var myChannelFactory = new ChannelFactory<IAuthentication>(myBinding, myEndpoint);
IAuthentication proxy = myChannelFactory.CreateChannel();
Person person = proxy.GetDeveloper();
Console.WriteLine(String.Format("GetDeveloper OK : {0} {1} ", person.FirstName, person.LastName));
person = proxy.GetArchitect();
Console.WriteLine(String.Format("GetArchitect OK : {0} {1} ", person.FirstName, person.LastName));
et la sortie est :
Connexion au service Authenticate... GetDeveloper OK : Asghar Panahy Une erreur s'est produite lors de la lecture du tube : De pipe is beëindigd. (109, 0x6d).
Quelqu'un peut-il m'aider à ce sujet ? Asghar