Le problème que je vais avoir la connexion d'une application cliente WCF à un hôte en cours d'exécution sur une machine distincte est documentée dans une question précédemment posée:WCF: Pourquoi le passage dans un point de terminaison distant échoue?
WCF: Why does passing in a remote endpoint fail?
Cependant, la solution proposée est dit ici que vous devez utiliser un SpnEndpointIdentity avec une chaîne vide. Puisque mon code ne ressemble en rien à l'exemple que j'ai référencé, j'ai besoin de savoir quoi faire avec l'objet SpnEndpointIdentity que j'ai créé.
J'ai un ChannelFactory sur lequel j'appelle Créer canal, en passant dans un EndpointAddress:
public override void InitialiseChannel()
{
SpnEndpointIdentity spnEndpointIdentity = new SpnEndpointIdentity("");
var address = new EndpointAddress(EndpointName);
Proxy = ChannelFactory.CreateChannel(address);
}
(NB: ChannelFactory est de type IChannelFactory, où T est l'interface de contrat de service) Alors, que dois-je faire avec spnEndpointIdentity? Je ne peux pas le transmettre à CreateChannel.
Ou peut-être que je peux l'utiliser en quelque sorte quand je crée l'usine de canal:
private ChannelFactory<T> CreateChannelFactory()
{
var binding = new NetTcpBinding
{
ReaderQuotas = { MaxArrayLength = 2147483647 },
MaxReceivedMessageSize = 2147483647
};
SpnEndpointIdentity spnEndpointIdentity = new SpnEndpointIdentity("");
var channelFactory = new ChannelFactory<T>(binding);
return channelFactory;
}
Encore une fois, je ne peux pas passer dans le constructeur, alors qu'est-ce que je fais?
Merci.
Salut, merci pour votre réponse. Cependant, c'est le code que j'ai essayé, mais vous ne pouvez pas passer SpnEndpointIdentity au constructeur EndpointAddress – Zephilim
Assurez-vous que EndpointName est un Uri et non une chaîne. Ça devrait marcher. – tomasr
Hoorah, merci pour cela, ça marche finalement quand je passe le EndpointName dans un Uri en premier. Maintenant, je dois juste comprendre ce que signifie réellement une identité "nulle" de SpnEndpoint. – Zephilim