3

サードパーティの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、障害オフセット0x000aada3、プロセスID 0x990、アプリケーション開始時刻0x01c9b4133281d5d0。

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

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

私がリストしたこれらの回避策のいずれかを使用すると、常にWindowsアプリとVS開発サーバー内のWebサービスで機能しますが、ローカルIISサーバーでは機能しません。

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

4

4 に答える 4

3

DLL と、IIS7/.NET 4/Win 2008 64 ビットで実行できることについて First Data に尋ねました。これが彼らの反応でした:

First Data Global Gateway についてお問い合わせいただきありがとうございます。dll ファイル (Linkpointtransaction.dll、LPICOM_6_.dll) はいずれも 64 ビット サーバーで動作するように更新されないため、Webservice API は、IIS 7 で実行されている 64 ビット マシン向けの現在のソリューションです。Web サービス API では、クライアント証明書をインストールし、SOAP 要求を介してトランザクションを送信する必要があります。Webservice API に関する追加情報は、http://www.firstdata.com/downloads/marketing-merchant/FDGG-Web-Service-API-v4.0.pdfにあります。

さらに詳しい説明やご質問が必要な場合は、下記の電話番号からサポート デスクにお問い合わせください。API サポート デスクの営業時間は、月~金の午前 9 時~午後 6 時です。

これは、将来同様の情報を探している他の人に役立つはずです。

于 2011-08-15T15:23:23.557 に答える
0

私は非常によく似た問題を抱えていましたが、何日もそれをいじった後、MSTestで同じコードを何度も実行すると、失敗してテストプロセスが完全にクラッシュする場合もあれば、機能する場合もあることに気付きました。大丈夫。

本当に奇妙なことは、MSTestをデバッグするときに最も頻繁に発生することですが、テストメソッド内をクリックし、メインボタンバーで[現在のコンテキストでテストをデバッグする]をクリックすると、ほとんどの場合失敗します。代わりに、[テスト結果]ウィンドウで[デバッグ]をクリックしてテストを実行すると、ほとんどの場合、正しく合格します。

また、デバッグモードで実行しない場合でも、ほとんどの場合正しく機能しますが、それでも失敗することがあります。2つの異なるVisualStudio2010インスタンスの2つの異なるプロジェクト間でまったく同じコードをコピー/貼り付けすることさえできます。そのうちの1つではコードが正しく実行され、もう1つでは失敗します。

于 2011-03-29T17:48:42.790 に答える
0

Web サイトは IIS7 でどのように構成されていますか? 統合モードで実行している場合は、クラシック モードに切り替えます。IIS 7.0 で統合モードで実行されている ASP.NET 2.0 アプリケーションの重大な変更を参照してください。

于 2009-04-03T07:03:20.340 に答える