0x800706BA "The RPC server is unavailable." beim Debuggen



  • Es kommt ziemlich sicher daher dass ein "lebt der Client noch? Ping" im COM Server austimed während ich im Debugger auf "Pause" bin. Weil der Client in der Zeit natürlich nicht antworten kann.

    Die Frage wäre dann noch: wie kann man das Timeout erhöhen? Idealerweise nur für bestimmte Server (bzw. nur für eine bestimmten Client), wenn nicht anders möglich auch gerne maschinenweit.



  • Das war leider kein sehr hilfreicher post von mir. War eher als moralische Unterstützung gemeint.

    Ich hab es irgendwie mit google rausgefunden. Such mal nach der Fehlermeldung in Englisch.



  • EOP schrieb:

    Such mal nach der Fehlermeldung in Englisch.

    Hab ich schon. Vorerst kein Glück.



  • Das passiert z.B. immer, wenn ich im Debugger attached bin und in der Anwendungen einen Datei Öffnen Dialog aufmache. Hilft dir aber wahrscheinlich nicht weiter.



  • Hehe. Nö, hilft mir wirklich nicht 🙂
    Datei Öffnen Dialog gibt's in meiner Anwendung keinen.


  • Mod

    Und was passiert wenn Du die Exception vom Programm behandeln lässt?



  • Das Programm ist nicht darauf ausgelegt "kaputtgehende" Connections zu den COM Servern zu reparieren.
    Heisst: ohne grössere Umbauten kann ich die Exception nicht sinnvoll behandeln.
    Die "Behandlung" die ich aktuell mache ist das Programm mit einer Fehlermeldung abzubrechen.

    Im Feld draussen ist das wie gesagt auch kein Problem, da es nicht auftritt. Die COM Server laufen ja auf der selben Maschine, d.h. Netzwerkprobleme o.Ä. können nicht stören. Die Wahrscheinlichkeit dass so ein "ping" Timeout im Normalbetrieb stattfindet ist wohl astronomisch gering.

    Aber es nervt halt hin und wieder beim Debuggen.


  • Mod

    Kenne ich. Bei mir ist es oft die SQL Server Verbindung, die irgendwann hops geht, wenn ich länger debugge.

    PS: Mit behandeln, meinte ich, dass es evtl. eine Windows Komponente ist, die die Exception auch behandelt. Du aber im Debugger ja die "First-Chance" erhältst. Aber es handelt sich ja um was ganz anderes... 😉



  • D.h. du hast da auch noch keinen Weg gefunden da z.B. ein Timeout zu erhöhen um das zu fixen?

    Und ja, ist was anderes, ich bekomme _com_error geschmissen (vermutlich - weiss ja noch nicht 100% wo's herkommt) direkt aus Calls auf über #import erzeugte Smart-Pointer für eigene COM Komponenten.
    Bzw. wäre sogar auch möglich dass es SQL Server Connections sind. Wir verwenden in dem Projekt auch ADO (klassisch COM, also kein ADO.NET). Und die ADO Klassen werden auch über #import verwendet, also auch _com_error -werfende Smart-Pointer.

    Also trotzdem ein guter Tip. An die SQL Server Connections hab' ich nämlich bisher noch gar nicht gedacht.


  • Mod

    Nein. Ich habe keinen Weg gefunden. Und ich habe schon einiges an den Connection Strings ausprobiert. Ich habe TCP/IP und Named Pipes schon als Verbindungstypen gewechselt. Einzig wenn ich den SQL Server über Shared Memory auf der gleichen Maschine verbinden kann passiert dies logischerweise nicht.


Anmelden zum Antworten