8

テスト完了を使用して起動されたWindowsServer2008 R2でアプリケーションを実行すると、mscorwks.dllから例外コードC0000005がスローされます。他のプラットフォーム(Windows XP、Server 2003 R2、Windows 7 32ビットおよび64ビット)では、この例外は発生しません。

1回の実行からのイベントログには、.NETランタイムによって発生したイベントID1023の次のイベントの多くが含まれています。

.NETランタイムバージョン2.0.50727.4952-致命的な実行エンジンエラー(7383851A)(80131506)

アプリケーション自体は、Visual StudioによってWSDLファイルから生成されたSOAPインターフェイス、つまり相互運用機能が埋め込まれたCOMオブジェクトを利用し、.NET4を対象としています

sfc / scannowが実行され、影響を受けるシステムのシステムファイルに問題は見つかりませんでした。

解決策を特定するためにどのようなトラブルシューティングを行うことができますか?

4

4 に答える 4

9

Fatal Engine Execution Error とアクセス違反は、どちらも同じ問題の症状です。FEEE は、ガベージ コレクション ヒープの内部構造が破棄されたことを .NET ガベージ コレクタが検出したときに発生します。アクセス違反はハードウェア例外であり、無効なアドレスでメモリにアクセスするように要求されたときにプロセッサによって発生します。AV の一般的な原因は、ヒープの破損です。

この種の事故は、アンマネージ コードが原因であることが非常に一般的です。また、アンマネージ コードに潜在的なメモリ管理バグがあり、長期間気付かれないこともよくあります。バグが与えることができるダメージの種類は、かなりランダムになる傾向があります. 異なるメモリ割り当てパターンを持つ別のオペレーティング システムで実行するだけで、爆弾をトリガーするのに十分な場合があります。

あなたはトラブルの原因の有力候補です。バグを追跡するには、COM サーバーのベンダーまたは作成者と協力する必要があります。

于 2010-12-29T04:18:34.557 に答える
3

0xC0000005 は、「アクセスが拒否されました」を意味する Win32 エラーをラップする例外コードです。COM 相互運用機能を使用していて、ExecutionEngineException (COM ではCOR_E_EXECUTIONENGINE; 0x80131506) を取得していることを考えると、それは COM コンポーネントの NULL ポインターか、.NETコードComImportのディレクティブの欠陥であると推測されます。

于 2010-12-28T23:15:54.923 に答える
3

このエラーは、TestComplete 7 がマネージド アプリケーションとアンマネージド アプリケーションが混在するヒープと対話する方法の欠陥が原因で発生します。次のコード ブロックを使用する方法を使用する代わりに、TestedApp.Run選択したスクリプト言語に合わせて変更され、VBScriptで表示されます。

Dim oScript, command
Set oScript = CreateObject("WScript.Shell")

command = "%comspec% /c " & PATH_TO_EXE & " " & Args
oScript.Run command, 10, True 

関連するMSDNの記事はRun Method (Windows Script Host)です。

于 2010-12-29T21:05:59.397 に答える
0

TestComplete 7 (最新のアップデート 7.52 を含む) は、バージョン .NET 4 Beta 2 までの .NET Framework 4 のみをサポートします。フレームワークのリリース バージョンをサポートしないため、これが問題の原因である可能性があります。

.NET 2.0 をターゲットとするアプリケーションをビルドしてみてください。これで問題は解決するはずです。

.NET 4 アプリケーションをテストするには、 TestComplete 8を使用する必要があります。

于 2010-12-30T08:42:53.267 に答える