2009-06-10 163 views
9

私の会社では、サードパーティの支払いプリコーディングエンジンを使用してクレジットカード取引を承認するASP.NET Webサービスを作成しました。HRESULT:0x80010105(RPC_E_SERVERFAULT)質問

Webサービスは、別個のアプリケーションサーバーでホストされ、ActiveXオブジェクト(.ocx拡張)を介して支払い処理サーバーに接続します。最近、「IsAvaiable」チェックを使用してアプリケーションへの接続を確立しようとすると、HRESULT:0x80010105(RPC_E_SERVERFAULT)例外が生成されていました。

誰もこの問題の調査を開始するには良い場所をお勧めしますか?

(私は、ベンダーに連絡すると、最初のオプションだろうけど、私たちは、技術サポートに連絡する前に、私の「行のカモ」を持ちたい)

答えて

2

私はActiveXのを使用して、同じエラー(RPC_E_SERVERFAULT)を持っていましたWebサービス内のオブジェクト。 ActiveXオブジェクトがクラッシュするたびに、IISはこのエラーをスローします。このエラーは、オブジェクトがクラッシュした理由を隠してしまいます(私たちにとっては、処理して値を返すために必要な無効なファイルを読み込んでいる間にクラッシュしていました)。

ActiveXコントロールが実際のエラーをどこにでも記録しているかどうかを確認するためにシステムログなどを確認しましたか?

明らかに何も表示されない場合は、テクニカルサポートに連絡して、実際のエラーの診断方法とそのエラーをどこにでも記録しているかどうかを判断することをおすすめします。

+1

Webサービスサーバーのイベントログを確認し、RPC_E_SERVERFAULTエラーに関連するエラーは表示されませんでした。私はアプリケーションサーバーにアクセスできないが、おそらくそこに何かがあるかもしれない。 –

0

例外が発生するたびにadplusにメモリダンプを取得させることができます。これは、問題のデバッグに役立ちます。

+0

メモリダンプはどこから来ますか:IISまたはActiveXオブジェクト? –

+0

メモリダンプは個々のモジュールからではなく、アプリケーションから発生するため、IIS –

+0

例外が発生したときに実際に.DMPファイルが生成されません。メモリダンプと見なされるべき他のタイプのファイル拡張子がありますか? –

2

マイケル、サードパーティ製のActivexコントロールはおそらくメモリを適切に管理していません。私の推測では、そうであってはならないときに、メモリの一部を上書きしています。サードパーティプロバイダに連絡して、修正プログラムがあるかどうかを確認してください。

1

これはスタックオーバーフローであり、ここではプログラミングに関する回答があるはずですが、失敗したマシンのアップデートやソフトウェアの変更については言及していません。ソフトウェアの変更がなければ、ハードウェアの問題である可能性が最も高いです。 RAMが失敗し、CPUが故障し、ハードウェアが故障します。システムをオフラインにしてハードウェアをテストすることができれば、ディスクやメモリモジュールが故障している可能性があります(おそらくNICも)。ベンダーがあなたにしてもらう最初のステップですが、もしあなたがそれを自分で行うなら、あなたはそれをあなたの条件で行うことができ、数時間の間、サービス料金を自分自身で安全にすることができます。

+0

これはナンセンスです – Elmue

+0

@Elmue何か建設的なものを追加しましたか?ハードウェアを確認することはしばしば良いステップであり、私は悪いRAMが暗号署名検証の問題を含むさまざまなエラーを引き起こすのを目撃しました。暗号が失敗した場合、RPCは失敗してしまう可能性があります。質問は、ベンダーに連絡する際のアドバイスについても質問しました。通常のハードウェアでは、電話担当者がコールをダンプするために使用するいくつかの厄介なテクニックがあります。 – Sqeaky

+1

いくつかのRPC_E_SERVERFAULTエラーがあります。ハードウェアが原因ではありませんでした。このエラーは、単にCOMサーバーがクラッシュしたことを意味します。原因は、バッファオーバーフローやヌルポインタの読み込みやエラーハンドリングのエラーなどのプログラミングエラーです。 RAMに問題がある場合は、bluescreensまでさまざまなアプリケーション(1つのサーバーだけでなく)でクラッシュすることがあります。 hadwareの問題が1つのアプリケーションでのみクラッシュを引き起こすことは不可能です。 – Elmue

0

また、COMオブジェクトがクラッシュした可能性があります。これは、ExcelでExcelをクラッシュさせたマクロで発生していました。 COMオブジェクト(私の場合はExcelアドイン)で表されるアプリケーションを単独で再実行し、クラッシュしたかどうか、または何らかのエラーが発生するかどうかを確認してください。