Frage

Meine Baugruppen, die eine Drittanbieter-DLL Arbeit feine in meinem Windows-Testumgebung App wickeln, und sie auch funktioniert in einem Web-Dienst, wenn im Debug-Modus (VS 2008 Visual Studio Development Server) hervorgebracht! Allerdings stürzt die App immer, wenn in den lokalen IIS 7-Webserver ausgeführt wird. Hier ist das Crash-Detail aus dem Ereignisprotokoll, wenn auf dem lokalen IIS-Server ausgeführt wird:

  

Fehlgeschlagene Anwendung w3wp.exe, Version   7.0.6001.18000, Zeitstempel 0x47919413, fehlgeschlagenes Modul ntdll.dll, Version   6.0.6001.18000, Zeitstempel 0x4791a783, Code Ausnahme 0xc0000374, Fehler   Offset 0x000aada3, Prozess-ID 0x990,   Anwendung Startzeit   0x01c9b4133281d5d0.

Diskussion: Ich schrieb einen Wrapper um eine .NET-DLL-Datei von einem Dritt (LinkPointTransaction.dll von Firstdata), und ich schrieb einige andere Baugruppen, die diese Wrapper verweisen. Da der Code ausgeführt wird, sendet ein Aufruf an die Drittanbieter LinkPointTransaction.LinkPointTxn.Send() die Transaktion erfolgreich Firstdata über das Internet, aber meine Anwendung abstürzt w3wp.exe irgendwo in diesen Anruf, bevor er trifft die nächste Zeile. Es ist nicht eine verwaltete Ausnahme werfen, dass ich sehen kann; stürzt einfach. Adaequat überall auf meiner Maschine außer in IIS7.

I 64-Bit-Vista Home Premium (IIS7) leite, aber ich fähigen 32-Bit-Anwendungen in IIS, erstellt eine separate AppPool nur für diesen Web-Service, und haben alle meine Baugruppen x86 gezwungen. Ich habe versucht, den App-Pool unter meinem Benutzerkonto mit Administratorrechten statt als Netzwerkdienst ausgeführt wird. UAC ausgeschaltet ist. Ich habe Integrated und Classic-Modus versucht. Ich habe geöffnet explizit die TCP / IP-Port in meinem lokalen Firewall, die die LinkPointTransaction.dll mit Firstdata kommunizieren. Ich habe sogar meinen Firewall ausgeschaltet (hinter einem Router) geschlossen.

Bei jedem dieser Umgehungsmöglichkeiten, die ich aufgelistet, es immer arbeitet in einer App von Windows und auch in einem Web-Service innerhalb des VS Development Server, aber nie arbeitet im lokalen IIS-Server.

Die AppPool für die IIS-Website ist im Classic-Modus. (Als Antwort auf Gidon)

War es hilfreich?

Lösung

Ich glaube nicht, das eine Programmierung Frage mehr ist, so bin ich es ‚zu beantworten.‘

Mit WinDbg, ich habe es verfolgt die dll des Verkäufers nach unten. Wenn die App abstürzt, es sieht aus wie ein Problem mit der Art und Weise wird die DLL-Speicher-de zuordnet. Der Call-Stack zeigt eine Speicherfreies Betrieb in der DLL, dann einem „Haufen frei“ -Operation im Kernel, dann einen „freie heap“ Betrieb in ntdll, und einen nachfolgenden „Bericht Heap failure“ (und dann RtlReportCriticalFailure), die nach unten reißt die ganz Sache.

Ich verstehe immer noch nicht, warum es in einer Windows arbeitet App Forms und in IIS 6, aber 7. jedoch in IIS nicht funktioniert, dies eher eine Plattform Frage geworden ist als eine Programmier Frage. Außerdem ist es wahrscheinlich die Verantwortung des Verkäufers, es zu beheben, anstatt Mine um ihn zu arbeiten.

UPDATE : Innerhalb von zwei Tagen nach Einreichung des Tech-Support-Ticket mit dem Verkäufer, sofern sie einen aktualisierten Satz der Integration DLLs, die ein COM-Objekt verwenden, die Sie mit regsvr32 registrieren, und es funktioniert in IIS7 64-bit, wenn Sie es im WOW64 Verzeichnis registrieren. YEA FÜR FIRST DATA TECHNISCHE HILFE!

Andere Tipps

, fragte ich First Data über den DLLs und es zu laufen in der Lage, auf IIS7 / .NET 4 / Win 2008 64-Bit. Das war ihre Antwort:

  

Vielen Dank für Ihre kürzliche Anfrage in Bezug First Data Global Gateway. Der Webservice-API ist unsere aktuelle Lösung für 64-Bit-Maschinen auf IIS 7 ausgeführt, da keine der DLL-Dateien (Linkpointtransaction.dll, LPICOM_6_.dll) aktualisiert wird mit den 64-Bit-Server zu arbeiten. Webservice API erfordert das Client-Zertifikat zu installieren und die Transaktion über SOAP-Anforderung senden. Weitere Informationen über Webservice-API unter http : //www.firstdata.com/downloads/marketing-merchant/FDGG-Web-Service-API-v4.0.pdf .

     

Wenn Sie weitere Auskünfte oder Fragen benötigen, wenden Sie sich bitte an unseren Support-Service über Telefonnummer unten. Bitte beachten Sie, die API-Support-Desk Stunden werden von 9.00 bis 18.00 Uhr EST Mo-Fr.

Dies sollte andere helfen, für ähnliche Informationen in der Zukunft.

Wie wird die Website in IIS7 konfiguriert? Wenn im integrierten Modus wechseln zu Classic-Modus ausgeführt wird. Siehe Wichtige Änderungen für ASP.NET 2.0-Anwendungen im integrierten Modus auf IIS 7.0

Ich habe ein sehr ähnliches Problem hatte, und nach einigen Tagen mit ihm durcheinander, ich bin gekommen, zu erkennen, dass, wenn ich den gleichen Code immer und immer wieder in MSTest laufen, manchmal scheitert es und völlig abstürzt den Testprozess, andere mal es funktioniert gut.

Die wirklich Merkwürdige ist, dass es meistens geschieht, wenn ein MSTest debuggen, aber wenn ich in der Testmethode klicken, dann auf der Haupt „-Tests debug im aktuellen Kontext“ buttonbar klicken scheitert es dann fast immer. Wenn ich stattdessen den Test ausführen, indem „debug“ in den „Testergebnisse“ Fenster klicken, dann fast immer es geht richtig.

Es ist auch fast immer richtig funktioniert, wenn ich im Debug-Modus nicht ausgeführt, aber immer noch manchmal nicht. Ich habe sogar so weit wie Copy / pastign den exakt gleichen Code zwischen zwei verschiedenen Projekten in 2 verschiedenen Visual Studio 2010 Fällen und in einem von ihnen werden der Code ordnungsgemäß ausgeführt, und in einem anderen gona wird es scheitern.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top