質問

サードパーティ DLL をラップするアセンブリが機能する 大丈夫 私のWindowsテストハーネスアプリでは、 また デバッグ モード (VS 2008 Visual Studio Development Server) で生成された場合、Web サービスで正常に動作します。ただし、ローカル IIS 7 Web サーバーで実行すると、アプリが常にクラッシュします。ローカル IIS サーバーで実行中のイベント ログからのクラッシュの詳細は次のとおりです。

アプリケーションW3WP.EXE、バージョン7.0.6001.18000、タイムスタンプ0x47919413、障害モジュールntdll.dll、バージョン6.0.6001.18000、タイムスタンプ0x4791A783、例外コード0xc0000374、障害0x90130130130130130130130132 。

議論:サードパーティの .NET DLL (FirstData の LinkPointTransaction.dll) のラッパーを作成し、そのラッパーを参照する他のアセンブリをいくつか作成しました。コードの実行中に、サードパーティへの呼び出しが行われます。 LinkPointTransaction.LinkPointTxn.Send() トランザクションはインターネット経由で FirstData に正常に送信されますが、アプリケーションがどこかで w3wp.exe をクラッシュします。 その間 その呼び出しは、次の行に到達する前に行われます。私が確認した限り、マネージド例外はスローされません。ただクラッシュするだけです。IIS7 を除いて、私のマシン上のどこでも正常に動作します。

64 ビット Vista Home Premium (IIS7) を実行していますが、IIS で 32 ビット アプリを有効にし、この Web サービス専用に別の AppPool を作成し、すべてのアセンブリを強制的に x86 にしました。ネットワークサービスとしてではなく、管理者権限を持つユーザーアカウントでアプリプールを実行してみました。UACはオフになっています。統合モードとクラシックモードを試しました。LinkPointTransaction.dll が FirstData との通信に使用する TCP/IP ポートをローカル ファイアウォールで明示的に開きました。私はファイアウォールを(ルーターの後ろで)遮断しました。

私がリストしたこれらの回避策のいずれかを使用すると、 いつも Windows アプリだけでなく、VS 開発サーバー内の Web サービスでも動作しますが、 一度もない ローカル IIS サーバーで動作します。

IIS Web サイトの AppPool はクラシック モードです。(ギドンへの応答)

役に立ちましたか?

解決

これはもうプログラミングの質問ではないと思うので、「回答」しています。

WinDbg を使用して、ベンダーが提供する dll まで追跡しました。アプリがクラッシュすると、dll がメモリの割り当てを解除する方法に問題があるように見えます。コール スタックには、DLL でのメモリ解放操作、次にカーネルでの「ヒープ解放」操作、次に ntdll での「ヒープ解放」操作、およびそれに続く、全部。

Windows フォーム アプリと IIS 6 では機能するのに、IIS 7 では機能しない理由がまだわかりません。ただし、これは「プログラミング」の質問というよりも、プラットフォームに関する質問になりました。さらに、それを修正するのはおそらくベンダーの責任であり、それを回避するのは私ではありません。

アップデート:ベンダーにテクニカル サポート チケットを提出してから 2 日以内に、regsvr32 で登録した COM オブジェクトを使用する統合 DLL の更新セットが提供されました。これを WOW64 ディレクトリに登録すると、IIS7 64 ビットで動作します。最初のデータ技術サポートに応じてください!

他のヒント

私はのDLLについての最初のデータを求め、IIS7 / .NET 4 / Winの2008年の64ビットを、それを実行することができるという。これは彼らの応答だっます:

  

ファースト・データ・グローバル・ゲートウェイに関する最近のお問い合わせをいただき、ありがとうございます。 WebサービスAPIは、dllファイル(Linkpointtransaction.dll、LPICOM_6_.dll)のいずれも64ビットのサーバーで動作するように更新されませんようIIS 7上で動作する64ビットマシンのための我々の現在のソリューションです。 WebサービスAPIは、クライアント証明書をインストールして、SOAPリクエストを経由してトランザクションを送信するために必要になります。 WebサービスのAPIに関する追加情報は、 HTTPで発見されます://www.firstdata.com/downloads/marketing-merchant/FDGG-Web-Service-API-v4.0.pdfする

     あなたがさらに明確化や質問が必要な場合は、

、下記の電話番号経由で弊社のサポートデスクにご連絡ください。 APIのサポートデスクの営業時間は午前9時から午後6時EST月 - 金にある予めご了承くださいます。

これは、将来的に同様の情報を探している人を助ける必要があります。

どのようにウェブサイトがIIS7に設定されていますか?それは、統合モードで実行されている場合はクラシックモードに切り替えます。 href = "http://mvolo.com/blogs/serverside/archive/2007/12/08/IIS-7.0-Breaking-Changes-ASP.NET-2.0-applications-Integrated-mode.aspx" のrel = <参照してください。 "nofollowをnoreferrerは">重大な変更は、ASP.NET 2.0アプリケーションをIIS 7.0 の上で統合モードで実行されている。

私は非常に同様の問題を持っていた、そして日のためにそれをいじりの後、私は他の、私はMSTestをして何度も同じコードを実行した場合、テストプロセスを、時にはそれが失敗し、完全にクラッシュしたことを実現するために来ています回、それが正常に動作します。

本当に奇妙なことは、それはほとんど常に失敗した私は、テストメソッド内でクリックすると、メインのButtonBar上で「現在のコンテキストでデバッグテスト」をクリックし、MSTestををデバッグするときに最も頻繁に起こるが、それです。私が代わりに「テスト結果」ウィンドウで、「デバッグ」をクリックしてテストを実行する場合、それはほとんど常に正常に渡します。

私はデバッグモードで実行していないが、それでも時々失敗しない場合は、

これはまた、ほとんどの場合、正常に動作します。私も限りコピーとして/ 2異なるのVisualStudio 2010件のインスタンスに2つの異なるプロジェクト間の正確な同じコードをpastignゴナましたが、そのうちの一つでコードが正常に実行され、他にそれが失敗します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top