Domanda

Il problema che sto avendo il collegamento di un'applicazione client WCF a un host in esecuzione su una macchina separata è documentato in una domanda precedentemente chiesto:

WCF: Perché il passaggio in un telecomando endpoint fallire?

Tuttavia, la soluzione fornita qui dice che è necessario utilizzare uno SpnEndpointIdentity con una stringa vuota. Dal momento che il mio codice non sembra niente come il caso nell'esempio che ho fatto riferimento, ho bisogno di sapere cosa fare con l'oggetto SpnEndpointIdentity ho creato.

Ho un ChannelFactory su cui io chiamo Crea un canale, passando in un EndpointAddress:

    public override void InitialiseChannel()
    {
        SpnEndpointIdentity spnEndpointIdentity = new SpnEndpointIdentity("");
        var address = new EndpointAddress(EndpointName);

        Proxy = ChannelFactory.CreateChannel(address);
    }

(NB: ChannelFactory è di tipo IChannelFactory, dove T è l'interfaccia di appalto di servizi) Allora, cosa devo fare con spnEndpointIdentity? Non posso passarlo al CreateChannel.

O forse posso usarlo in qualche modo quando creo la fabbrica di canale:

    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;
    }

Anche in questo caso, non posso passarlo al costruttore, quindi cosa devo fare?

Grazie.

È stato utile?

Soluzione

Si almiost capito.

Quello che manca è che si associa l'EndpointIdentity con l'EndpointAddress, e quindi prevedono che a CreateChannel ():

SpnEndpointIdentity spnEndpointIdentity = new SpnEndpointIdentity("");
var address = new EndpointAddress(EndpointName, spnEndpointIdentity);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top