Unverständliche ERemotableException (10893)



  • Hallo,

    mit dem BCB6 habe ich mir einen WebClient erstellt der über ein Interface
    Daten anfordern (Aufruf einer Interface-Methode) und erhalten soll. Die
    Verbindungsklassen zum Server werden mit Borlands THTTPRIO-Klassen
    realisiert, die Verbindungsdaten (Location, Server-Name und -Port) extra-
    hiere ich aus der Service-DLL.

    Von den drei im Service-Interface implementierten Methoden lassen sich
    zwei ohne Probleme aufrufen, d.h. es wird eine Verbindung hergestellt und
    sie liefern die erwarteten Daten. Die 3te produziert jedoch folgendes:

    Im Projekt WebClient.exe ist eine Exception der Klasse ERemotableException
    aufgetreten. Meldung: EinFehler wurde entdeckt, während die Web Service-
    Anfrage ausgeführt wurde. (10893)...

    Vielleicht weiß einer von euch, welcher Fehler hier aufgetreten ist. Sowohl
    BCB-Hilfe, als auch Internet waren diesbezueglich nicht ergiebig.

    Danke im Voraus

    Guido



  • Hallo

    woher sollen wir das wissen? Ohne mehr Infos wie relevanten Quellcode, gesendete Daten und genauere Fehlerumstände?
    So kann ich dir nur Debugger und eigene Logging-Funktionen empfehlen.

    bis bald
    akari



  • Hallo akari,

    so wird in meiner .exe-Datei die Verbindung zum Service
    hergestellt:

    ...
    // BCB componente
    THTTPRIO* myRIO;
    // Aus der WSDL extrahiertes Interface
    _di_IService theService;
    // Erzeugung der Interface-Methoden
    myRIO->QueryInterface(theService);

    // Setzen der Service-Parameter (aus WSDL extrahiert)
    // z.B. http://localhost/derService/wsdl/myService
    myRIO->WSDLLocation = ServicePfad;
    myRIO->Service = ServiceName;
    myRIO->Port = ServicePort;

    // COM-Initialisierung muß sein
    TInitOleT<int> myOle;

    // Aufruf der einzelnen Methoden
    AnsiString param1;
    AnsiString param2;
    AnsiString param3;

    // Dieser Aufruf liefert das erwartete 'result'
    AnsiString result = theService->methode1(param1, param2);

    result = "";
    // Dieser Aufruf verursacht besagte Exception
    // Das Ergebnis dieser Methode soll in 'result' stehen
    theService->methode2(param1, param2, param3, result);
    ...

    Wenn ich im Debugger diese letzte Zeile ausführen möchte,
    passiert mehrere Sekunden lang nichts und anschließend wird
    das Fenster 'Benachrichtigung über Debugger-Exception) mit
    besagter Fehlermeldung geöffnet.

    Was passiert? Angedachte Möglichkeiten
    - Timeout (auf welcher Seite?)
    - Fehler im Service selbst
    - Fehler während der Übertragung der Daten zum Interface
    - Fehler in der Interfaceklasse (_di_IService)

    Vielleicht sehe ich ja auch den Wald vor lauter Bäumen
    nicht, diese Fehlernummer ist für mich ohne jede Aussage.

    Ich hoffe, die Details oben erhellen mein Problem.

    TIA Guido



  • Moin,

    die Exceptionursache ist jetzt bekannt: Sie wird durch
    ein Fehlverhalten im Webservice (Progress 4GL) verursacht,
    dessen Fehlermeldung via SOAP-Fault an den Client weiter-
    geleitet wird und dort die besagte Exception auslöst.

    Tschau Guido


Anmelden zum Antworten