2009-06-10 8 views
9

Per la mia azienda, ho creato un servizio Web ASP.NET che utilizza un motore di pressionione dei pagamenti di terze parti per autorizzare le transazioni con carta di credito.HRESULT: 0x80010105 (RPC_E_SERVERFAULT) domanda

Il servizio Web è ospitato su un server applicazioni separato e si collega al server di elaborazione dei pagamenti tramite un oggetto ActiveX (estensione .ocx). Ultimamente, ha generato un'eccezione HRESULT: 0x80010105 (RPC_E_SERVERFAULT) quando provo a stabilire una connessione all'applicazione utilizzando un controllo "IsAvaiable".

Qualcuno consiglia un buon punto di partenza per la ricerca di questo problema?

(So di contattare il venditore sarebbe la prima opzione, ma voglio avere il mio "anatre in una riga", prima di contattare il supporto tecnico)

risposta

2

che ho avuto lo stesso errore (RPC_E_SERVERFAULT) utilizzando ActiveX oggetti nei servizi web. Ogni volta che l'oggetto ActiveX si arrestava in modo anomalo, IIS generava questo errore, che mascherava il motivo per cui l'oggetto si arrestava in modo anomalo (per noi di solito si bloccava durante il caricamento di un file non valido di cui aveva bisogno per elaborare e restituire i valori).

Avete controllato i registri di sistema, ecc. Per vedere se il vostro controllo ActiveX ha registrato l'errore effettivo da qualche parte?

Se non riesci a vedere nulla di ovvio, ti consigliamo di contattare il supporto tecnico per capire il modo migliore per diagnosticare quale sia l'errore effettivo e se registra gli errori ovunque.

+1

Ho controllato il registro eventi del server del servizio Web e non ho riscontrato errori relativi all'errore RPC_E_SERVERFAULT. Non ho accesso al server delle applicazioni, forse potrei trovare qualcosa lì. –

0

È possibile abilitare adplus per ottenere un dump della memoria ogni volta che si ottiene l'eccezione. Questo può essere usato per aiutare a risolvere il problema.

+0

Da dove proviene il dump della memoria: IIS o l'oggetto ActiveX? –

+0

I dump della memoria provengono dall'applicazione, non dai singoli moduli, quindi IIS –

+0

in realtà non produce un file .DMP quando si verifica l'eccezione. Ci sono altri tipi di estensione di file che dovrei cercare, che sarebbero considerati un dump della memoria. –

2

Michael, il controllo ActiveX di terze parti probabilmente non gestisce correttamente la memoria. La mia ipotesi è che sta sovrascrivendo una parte di una memoria quando non dovrebbe esserlo. Verificare con il proprio fornitore di terze parti per vedere se hanno una soluzione per questo.

1

So che questo è overflow dello stack e qui dovrebbe esserci una risposta di programmazione, ma non si menzionano aggiornamenti o modifiche del software alla macchina malfunzionante. Se non ci sono state modifiche al software, è molto probabile che si tratti di un problema hardware. RAM Fallisce, le CPU falliscono, l'hardware non funziona. Se riesci a portare il sistema offline e testare l'hardware, probabilmente troverai che un disco o un modulo di memoria stanno fallendo (forse anche NIC). È probabile che sia il primo passo che il venditore vorrebbe che tu facessi, ma se lo fai da solo puoi farlo alle tue condizioni e potresti metterti al sicuro il costo del servizio per alcune ore del loro tempo.

+0

This is Nonsense – Elmue

+0

@Elmue Avete qualcosa di costruttivo da aggiungere? La verifica dell'hardware è spesso un buon passo e ho assistito a un errore dovuto a una serie di errori, tra cui problemi di verifica della firma crittografica. Se crypto non funziona, RPC può fallire a causa di ciò.La domanda ha anche chiesto consigli quando si contatta un fornitore, l'hardware di routine si risolve un certo numero di tecniche squallide utilizzate dagli agenti del telefono per effettuare il dump della chiamata. – Sqeaky

+1

Ho visto diversi errori RPC_E_SERVERFAULT. L'hardware non è mai stato la causa. Questo errore significa semplicemente che un server COM si è arrestato in modo anomalo. La causa sono principalmente errori di programmazione come il buffer overflow o la lettura di puntatori nulli o di cattiva gestione degli errori. Se avessi problemi con la RAM vedresti arresti anomali in applicazioni diverse (non solo in un server) fino a quando non verranno visualizzate le schermate blu. È impossibile che un problema diwareware causi arresti anomali solo in un'applicazione. – Elmue

0

Inoltre potrebbe significare l'arresto anomalo dell'oggetto COM. Se ciò accadesse con una macro in Excel, si è verificato un arresto anomalo di Excel. Prova a rieseguire l'applicazione rappresentata dall'oggetto COM (nel mio caso, un componente aggiuntivo di Excel) da sola e vedere se si blocca o genera un errore.