2016-07-16 10 views
0

So haben wir eine Software von Drittanbietern, die ihre eigene API verwendet, um berechnete Daten nur innerhalb der Anwendung abzurufen, wenn wir versuchen, einen WCF-Dienst über die API auszuführen und den Status auszuführen wird als OPEN angezeigt, aber wir versuchen, diesen Service als Service-Referenz hinzuzufügen. Aus irgendeinem Grund können wir keine Verbindung herstellen.Verbinden mit einem selbst gehosteten WCF-Dienst

Der Service-Port wird nicht in der Liste geöffneter Ports angezeigt, da WCF möglicherweise auf einem anderen Thread (Anwendungs-Thread eines Drittanbieters) gestartet wird.

Ich verfolge dieses Tutorial: https://blogs.msdn.microsoft.com/brunoterkaly/2013/11/01/wcf-service-hosting-how-to-host-a-wcf-service-from-inside-a-windows-presentation-foundation-application/

der gut arbeitet, wenn wir unsere eigene Software erstellen Sie die WCF-Host.

Die Idee hinter der Verwendung von WCF in einer Drittanbietersoftware ist, dass wir versuchen, auf berechnete Daten von dieser Software zuzugreifen und sie in einer anderen Clientanwendung zu erhalten.

Bitte Ihre Hilfe wird benötigt.

+0

Bin immer nicht wirklich, was du meinst ... also die 3rd-Party-Software enthüllt und API ... und Sie lesen die API durch die WCF ??? –

+0

Nein, die dritte Partei macht die API nur innerhalb des Plugins verfügbar, das Sie für die Software erstellen (das Plugin kann UI über usercontrol haben). Wir wollen den WCF-Dienst ausführen, sobald das Plugin geladen ist (API-Rückruf wird gestartet) kann auf Daten außerhalb der Software zugreifen – Nash009

+0

Kannst du die WSDL des WCF sehen? –

Antwort

0

WCF-Dienst wurde nicht entdeckt zu werden, weil ich es habe innerhalb Anweisung

using(ServiceHost myServ = new ServiceHost(typeof(HelloWorldService), baseAdress)) 
{ 

       ServiceMetadataBehavior smb = new ServiceMetadataBehavior(); 
       smb.HttpGetEnabled = true; 
       smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15; 
       myServ.Description.Behaviors.Add(smb); 
       myServ.Open(); 
       MessageBox.Show("Services is :" + myServ.State + "\n" + baseAdress); 
    } 

einmal die Verwendung von() {} entfernt wird die WCF arbeitet als Charme