Für mein Unternehmen habe ich einen ASP.NET-Webdienst erstellt, der eine Zahlungsprozessierungs-Engine von Drittanbietern zur Autorisierung von Kreditkartentransaktionen verwendet.
Der Webservice wird auf einem separaten Anwendungsserver gehostet und über ein ActiveX-Objekt (Erweiterung .ocx) mit dem Zahlungsverarbeitungsserver verbunden. In letzter Zeit wurde eine HRESULT: 0x80010105 (RPC_E_SERVERFAULT) -Ausnahme generiert, wenn ich versuche, eine Verbindung zur Anwendung mit einer "IsAvaiable" -Prüfung herzustellen.
Empfiehlt jemand einen guten Ausgangspunkt für die Untersuchung dieses Problems?
(Ich weiß, dass die Kontaktaufnahme mit dem Anbieter die erste Option ist, aber ich möchte meine "Enten in einer Reihe" haben, bevor wir den technischen Support kontaktieren)
Ich hatte den gleichen Fehler ( RPC_E_SERVERFAULT
) mit ActiveX-Objekten in Web-Services. Immer wenn das ActiveX-Objekt abstürzte, würde IIS diesen Fehler auslösen, der den Grund für das Absturz des Objekts maskieren würde (für uns stürzte es normalerweise beim Laden einer ungültigen Datei ab, die es verarbeiten und von der es Werte zurückgeben musste.)
Haben Sie die Systemprotokolle usw. überprüft, um festzustellen, ob Ihr ActiveX-Steuerelement den tatsächlichen Fehler irgendwo protokolliert hat?
Wenn Sie nichts Offensichtliches sehen können, rate ich Ihnen, sich an den technischen Support zu wenden, um herauszufinden, was der tatsächliche Fehler ist und ob er seine Fehler protokolliert.
Michael, Ihr ActiveX-Steuerelement von Drittanbietern verwaltet den Speicher wahrscheinlich nicht richtig. Meine Vermutung ist, dass es einen Teil eines Speichers überschreibt, wenn es nicht sein sollte. Erkundigen Sie sich bei Ihrem Drittanbieter, ob es eine Lösung dafür gibt.
Ich weiß, dass dies ein Stack-Überlauf ist und es sollte hier eine Antwort auf die Programmierung geben, aber Sie erwähnen keine Updates oder Software-Änderungen an der fehlerhaften Maschine. Wenn es keine Softwareänderungen gab, handelt es sich höchstwahrscheinlich um ein Hardwareproblem. RAM schlägt fehl, CPUs schlagen fehl, Hardware schlägt fehl. Wenn Sie das System offline schalten und die Hardware testen können, werden Sie wahrscheinlich feststellen, dass eine Festplatte oder ein Speichermodul fehlerhaft ist (möglicherweise auch NIC). Es ist wahrscheinlich der erste Schritt, den der Verkäufer tun würde, aber wenn Sie es selbst tun, können Sie es zu Ihren Bedingungen tun und könnte sich die Servicegebühr für ein paar Stunden ihrer Zeit.
Sie können adplus aktivieren, um jedes Mal, wenn Sie die Ausnahme erhalten, ein Speicherabbild zu erfassen. Dies kann verwendet werden, um das Problem zu beheben.
könnte auch bedeuten, dass das COM-Objekt abgestürzt ist. Hatte dies mit einem Makro in Excel passiert, das Excel abgestürzt ist. Versuchen Sie, die Anwendung, die durch das COM-Objekt dargestellt wird (in meinem Fall ein Excel-Add-In), erneut auszuführen, und prüfen Sie, ob es abstürzt oder einen Fehler verursacht.
Tags und Links .net web-services com-interop