Domanda

I miei gruppi che avvolgono un'opera DLL di terze parti bene nel mio finestre test harness app, e anche lavorare bene in un servizio web, quando ha deposto le uova in modalità debug (VS 2008 di Visual Studio Development Server)! Tuttavia, l'applicazione si blocca sempre durante l'esecuzione del server Web IIS 7 locale. Ecco il dettaglio incidente dal registro eventi quando in esecuzione sul server IIS locale:

  

errore applicazione w3wp.exe, versione   7.0.6001.18000, timestamp 0x47919413, ha provocato l'errore modulo ntdll.dll, versione   6.0.6001.18000, timestamp 0x4791a783, codice di eccezione 0xc0000374, colpa   Offset 0x000aada3, ID processo 0x990,   orario di inizio di applicazione   0x01c9b4133281d5d0.

Discussione: ho scritto un wrapper per una dll .NET da una terza parte (LinkPointTransaction.dll da FirstData), e ho scritto alcuni altri gruppi che fanno riferimento a quel involucro. Poiché il codice viene eseguito, una chiamata al LinkPointTransaction.LinkPointTxn.Send() di terze parti invia la transazione con successo per FirstData su internet, ma i miei arresti di applicazione w3wp.exe qualche parte durante quella chiamata, prima che colpisca la riga successiva. Essa non genera un'eccezione gestita che posso vedere; si blocca solo. Funziona bene ovunque sulla mia macchina se non in IIS7.

Sono in esecuzione a 64 bit Vista Home Premium (IIS7), ma ho attivato le applicazioni a 32 bit in IIS, ha creato un AppPool separato solo per questo servizio web, e hanno costretto tutti i miei gruppi a x86. Ho provato a fare funzionare l'app Pool sotto il mio account utente con privilegi di amministratore, invece di come il servizio di rete. UAC è spento. Ho cercato i modi classici e integrato. Ho esplicitamente aperto la porta TCP / IP nel mio firewall locale che il LinkPointTransaction.dll utilizza per comunicare con FirstData. Ho anche ho chiuso il mio firewall off (dietro un router).

Con una qualsiasi di queste soluzioni alternative che ho elencato, è sempre lavora in un'applicazione di Windows ed anche in un servizio web all'interno del server VS sviluppo, ma mai lavora nel server IIS locale.

L'AppPool per il sito web di IIS è in modalità Classic. (In risposta a Gidon)

È stato utile?

Soluzione

Non credo che questo è più una questione di programmazione, in modo da sto 'rispondere' esso.

Utilizzando WinDbg, ho rintracciato giù al dll fornita dal produttore. Quando l'applicazione si blocca, sembra che un problema con il modo in cui la dll è de-allocazione di memoria. Lo stack di chiamate mostra un'operazione di memoria libera nella DLL, quindi un'operazione di "cumulo libero" nel kernel, poi un "mucchio libero" il funzionamento in ntdll, e un successivo "fallimento rapporto mucchio" (e quindi RtlReportCriticalFailure) che abbatte il tutta la faccenda.

Io ancora non capisco perché funziona in un Windows Form app e in IIS 6, ma non lavoro in IIS 7. Tuttavia, questo è diventato più di una domanda piattaforma di una domanda 'programmazione'. Inoltre, è probabilmente la responsabilità del venditore per risolvere il problema piuttosto che la mia di lavorare intorno ad esso.

Aggiorna : Entro due giorni dalla presentazione del biglietto di supporto tecnico con il fornitore, hanno fornito un set aggiornato di DLL di integrazione che utilizzano un oggetto COM che si registri con regsvr32, e funziona in IIS7 64-bit se si registra nella directory WOW64. YEA PER FIRST DATA SUPPORTO TECNICO!

Altri suggerimenti

Ho chiesto First Data circa le DLL ed essere in grado di eseguire sul IIS7 / .NET 4 / Win 2008 a 64 bit. Questa è stata la loro risposta:

  

Grazie per la vostra recente inchiesta per quanto riguarda primo Global Gateway. L'API Webservice è la nostra soluzione attuale per le macchine a 64 bit in esecuzione su IIS 7 come nessuno dei file dll (Linkpointtransaction.dll, LPICOM_6_.dll) sarà aggiornato per funzionare con il server a 64 bit. Webservice API richiederà di installare il certificato client e inviare la transazione tramite richiesta SOAP. Ulteriori informazioni sul servizio Web API si trova a http : //www.firstdata.com/downloads/marketing-merchant/FDGG-Web-Service-API-v4.0.pdf .

     

Se avete bisogno di ulteriori chiarimenti o domande, si prega di contattare il nostro servizio di supporto tramite il numero di telefono qui sotto. Si prega di notare le ore desk di supporto API è 9:00-18:00 EST lun-sab.

Questo dovrebbe aiutare gli altri in cerca di informazioni simili in futuro.

Come è il sito configurato in IIS7? Se è in esecuzione in modalità integrata passare alla modalità classica. Vedere Modifiche di per ASP.NET 2.0 applicazioni in esecuzione in modalità integrata su IIS 7.0

Ho avuto un problema molto simile, e dopo pasticciano con esso per giorni, mi sono reso conto che se corro lo stesso codice più e più volte in MSTest, a volte non riesce e si blocca completamente il processo di prova, altri volte funziona benissimo.

La cosa veramente strana è che accade più spesso quando il debug di MSTest, MA, se scatto all'interno del metodo di prova, quindi sulla principale ButtonBar cliccare su "test debug nel contesto attuale", allora fallisce quasi sempre. Se io invece eseguire il test facendo clic su "debug" nella sezione "Risultati del test" finestra, poi si passa quasi sempre in modo corretto.

E 'anche funziona quasi sempre correttamente se non corro in modalità debug, ma non ancora a volte sicuro. Ho anche gona per quanto copia / pastign lo stesso codice esatta tra 2 diversi progetti in 2 differenti VisualStudio 2010 casi, e in uno di essi il codice verrà eseguito correttamente, e in un altro fallirà.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top