Meine Assemblies, die eine DLL eines Drittanbieters umschließen, funktionieren fein in meiner Windows-Test-Harness-Anwendung, und sie auch funktionieren in einem Webdienst einwandfrei, wenn sie im Debug-Modus (VS 2008 Visual Studio Development Server) erzeugt werden! Die Anwendung stürzt jedoch immer ab, wenn sie auf dem lokalen IIS 7-Webserver ausgeführt wird. Hier ist der Absturz Detail aus dem Ereignisprotokoll bei der Ausführung auf dem lokalen IIS-Server:
Fehlerhafte Anwendung w3wp.exe, Version 7.0.6001.18000, Zeitstempel 0x47919413, fehlerhaftes Modul ntdll.dll, Version 6.0.6001.18000, Zeitstempel 0x4791a783, Ausnahmecode 0xc0000374, Fehler Offset 0x000aada3, Prozess-ID 0x990, Startzeit der Anwendung 0x01c9b4133281d5d0.
Diskussion: Ich schrieb einen Wrapper um eine .NET dll von einem Drittanbieter (LinkPointTransaction.dll von FirstData), und ich schrieb einige andere Assemblys, die diesen Wrapper verweisen. Während der Code ausgeführt wird, wird ein Aufruf an die Drittanbieter LinkPointTransaction.LinkPointTxn.Send()
sendet die Transaktion erfolgreich über das Internet an FirstData, aber meine Anwendung w3wp.exe stürzt irgendwo ab während diesen Aufruf, bevor er die nächste Zeile erreicht. Es wird keine verwaltete Ausnahme ausgelöst, die ich sehen kann; es stürzt einfach ab. Funktioniert überall auf meinem Rechner gut, außer in IIS7.
Ich führe 64bit Vista Home Premium (IIS7) aus, aber ich habe 32bit-Anwendungen in IIS aktiviert, einen separaten AppPool nur für diesen Webdienst erstellt und alle meine Baugruppen zu x86 gezwungen. Ich habe versucht, den App-Pool unter meinem Benutzerkonto mit Admin-Rechten auszuführen, anstatt als Netzwerkdienst. UAC ist ausgeschaltet. Ich habe den integrierten und den klassischen Modus ausprobiert. Ich habe den TCP/IP-Port in meiner lokalen Firewall explizit geöffnet, den die LinkPointTransaction.dll zur Kommunikation mit FirstData verwendet. Ich habe sogar meine Firewall abgeschaltet (hinter einem Router).
Mit jeder der von mir aufgelisteten Umgehungslösungen ist es immer funktioniert in einer Windows-Anwendung und auch in einem Webdienst innerhalb des VS Development Servers, aber niemals funktioniert auf dem lokalen IIS-Server.
Der AppPool für die IIS-Website befindet sich im klassischen Modus. (Als Antwort auf Gidon)
0 Stimmen
Ich habe das gleiche Problem, aber meine funktionierte für eine kurze Zeit, aber jetzt stürzt jedes Mal, wenn Sie versuchen, in MSTest laufen. Es wird keine Ausnahme geworfen. Gut, dass ich nicht der Einzige bin...