Frage

Das Problem Ich habe eine WCF-Client-Anwendung an einem Host-Anschluss auf einem separaten Computer ausgeführt wird in einer Frage dokumentiert wird vorher gefragt:

WCF: Warum in einem Remote-Endpunkt fehlschlagen ist vorbei?

Allerdings stellte die Lösung hier sagt, Sie brauchen eine SpnEndpointIdentity mit einem leeren String zu verwenden. Da mein Code alles sieht nicht aus wie der Fall in dem Beispiel, das ich verwiesen habe, muß ich wissen, was mit dem SpnEndpointIdentity Objekt zu tun, die ich geschaffen habe.

Ich habe einen Channel auf die ich erstelle Kanal nennen, in einem EndpointAddress vorbei:

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

        Proxy = ChannelFactory.CreateChannel(address);
    }

(NB: Channel ist vom Typ IChannelFactory, wobei T die Servicevertrag-Schnittstelle) Also, was soll ich tun mit spnEndpointIdentity? Ich kann es nicht passieren Create.

Oder vielleicht kann ich es irgendwie verwenden, wenn ich den Kanal Fabrik zu erstellen:

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

Noch einmal, ich kann es nicht in den Konstruktor übergeben, so etwas mache ich damit?

Danke.

War es hilfreich?

Lösung

Sie haben almiost es.

Was Sie fehlt, ist, dass Sie die EndpointIdentity mit dem EndpointAddress assoziieren, und geben Sie dann das zu Create ():

SpnEndpointIdentity spnEndpointIdentity = new SpnEndpointIdentity("");
var address = new EndpointAddress(EndpointName, spnEndpointIdentity);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top