Heim > Backend-Entwicklung > C++ > Hauptteil

Wie kommuniziere ich mit WCF-Diensten von nicht verwalteten C-Clients aus?

Barbara Streisand
Freigeben: 2024-11-15 10:48:02
Original
735 Leute haben es durchsucht

How to Communicate with WCF Services from Unmanaged C   Clients?

Verwendung nicht verwalteter C-Clients zur Kommunikation mit WCF-Diensten

Da wir die Notwendigkeit verstehen, nicht verwaltete Windows C-Clients mit WCF-Diensten zu verbinden, müssen wir uns damit befassen mehrere mögliche Ansätze, jeder mit seinen eigenen Einschränkungen.

WWSAPI

Leider ist die WWSAPI-Option für dieses Szenario ungeeignet, da sie nicht mit Windows 2000-Clients kompatibel ist.

ATL Server

Beim Versuch, den ATL-Server zu nutzen, kommt es zu einer Abflachung WSDL und das Entfernen von Richtlinienverweisen, das resultierende WSDL-Format bleibt mit Sproxy inkompatibel.

Bridging mit einer verwalteten C-DLL

Die effektivste Lösung besteht darin, WCF-Code für Clients zu schreiben C# und Verwendung einer C-Bridge-DLL, um die Kommunikation zwischen nicht verwaltetem C-Code und dem verwalteten WCF zu erleichtern Code.

Schritt-für-Schritt-Anleitung zum Erstellen der C Bridge-DLL

  1. HelloService WCF-Dienst erstellen

    • Initialisieren Sie einen Windows NT-Dienst zum Hosten von WCF Hello Service.
    • Definieren Sie die Klassen IHelloService und HelloService.
  2. Erstellen Sie den Dienst

    • Erstellen Sie das Windows NT-Dienstprojekt.
    • Installieren Sie das service.
  3. Bridge-DLL-Schnittstelle erstellen

    • IHelloServiceClientBridge.h hinzufügen, das die öffentliche Schnittstelle der Bridge-DLL deklariert.
  4. Erstellen Bridge-DLL-Implementierung

    • HelloServiceClientBridge.h und .cpp hinzufügen, um die Funktionalität der Bridge-DLL zu implementieren.
    • Verwaltete C-Header-Dateien einschließen.
    • Verwenden Sie #using Direktiven, um auf die HelloServiceClient-Assembly zu verweisen.
    • Implementieren Sie die Methode SayHello() zum Erstellen WCF-Dienstaufrufe und Marshallen des Ergebnisses in einer nicht verwalteten Zeichenfolge.
  5. MFC-Anwendung aktualisieren

    • IHelloServiceClientBridge.h hinzufügen.
    • Rufen Sie die SayHello()-Methode in der Schaltfläche der MFC-Anwendung auf Handler.
    • Zeigen Sie die WCF-Dienstantwort in einem Meldungsfeld an.

Fazit

Dieser detaillierte Prozess bietet eine praktikable Lösung für die Nutzung nicht verwalteter C-Clients für die Interaktion mit WCF-Diensten. Durch den Einsatz einer C-Bridge-DLL wird es möglich, diese Komponenten nahtlos zu integrieren und die gewünschte Kommunikationsfunktionalität zu erreichen.

Das obige ist der detaillierte Inhalt vonWie kommuniziere ich mit WCF-Diensten von nicht verwalteten C-Clients aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage