ich versuche eine WCF-Dienst zu implementieren, der auf eine COM-Dll über Interop zugreift. Der Dienst wurde nach diesem How to: Host WCF in a Windows Service Using TCP gebaut und funktioniert soweit. Wenn ich jetzt in der WCF Service Library jedoch auf die eigentliche Interop Funktion zugreifen will, bekomme sofort eine CommunicationException die aus einer SocketException erzeugt wurde (Eine vorhandene Verbindung wurde vom Remotehost geschlossen). Objekte aus der Interop.dll kann ich jedoch ohne Probleme erzeugen. Die Methode der Interop.dll greift dabei auf das lokale Dateisystem und Registry-Einträge zu. Außerdem wird eine TCP-Verbindung (zum Test auf den lokalen Rechner) aufgebaut um die Ergebnisse zu liefern.
Ich suche jetzt schon recht lange nach eine Lösung finde aber nix (bin zudem auch noch Anfänger was WCF angeht). Ist es überhaupt möglich solch eine Zugriff über eine Web-Service anzubieten?
Ich hab dein Problem noch nicht ganz verstanden. Der WCF-Service greift über die Interop.dll auf eine COM-DLL zu und du bekommst dabei ne CommunicationException? Wenn ja ergibt das keinen Sinn (nicht deine Ausführungen sondern dieses Verhalten mein ich).
Hi, am besten aktivierst Du mal das Tracing beim Client oder Service in der config. Du kannst es auch mit dem ScvConfigEditor (Visual Studio Shell-> SvcConfigEditor) einstellen. Der Teil zum Aktivieren das Tracings sieht in der Config in etwa so aus.
Dann nimmst du den SvcTraceViewer (Visual Studio Shell-> SvcTraceViewer), öffnest die Datei mit dem Trace Informationen. Darin solltest Du dann relativ schnell die Exception und den Grund der Exception erkennen können. Sag doch einfach noch mal kurz Bescheid. Gruß Ralf
Vielen Dank. Bei eingeschaltetem Tracing kam raus, dass ich einen Rückgabetyp nicht im Datenvertrag hatte. Hab bei allen enum Member das [EnumMember] Attribut vergessen. Hatte also nix mit der Interop DLL zu tun.
Der WCF-Service greift über die Interop.dll auf eine COM-DLL zu und du bekommst dabei ne CommunicationException? Wenn ja ergibt das keinen Sinn (nicht deine Ausführungen sondern dieses Verhalten mein ich).