起動時に例外コード0xE0434352でクラッシュする.NETWindowsアプリケーションを修正するにはどうすればよいですか?


81

私は、.NET構築したWindowsフォームIはまた、これは32ビット(x86)アプリケーションとして構築されているVisual Studioの2010を経由してパッケージをインストール/セットアップ対応を建てのVisual Studio 2010でアプリケーションを。(32ビットのみのサードパーティのWindowsフォームコントロールを使用します)。

セットアップパッケージを実行して、他のWindows 764ビット環境および32ビットWindowsXPボックスに正常に展開できます。インストールされたアプリケーションは、これらで正常に実行されます。

ただし、Windows Server 2008 R2-64ビットを実行しようとすると、起動時にアプリケーションがクラッシュします。インストーラーを介してエラーなしで正常にインストールされました。

アプリケーションをロードするとクラッシュするようです。アプリケーションの最初の行としてメッセージボックスを配置して、読み込みを過ぎたかどうかを確認します。メッセージボックスが表示されないので、アプリケーションの読み込み/初期化中に発生すると思います。

これまでのところ、私は続けるべきことをあまり見つけていません。詳細から、次のことがわかります。

Exception Code: E0434352

明らかなものがあるかどうかを確認するために釣りをしたりグーグルで検索したりしましたが、何も見えませんでした。CLRで発生する可能性のあるスタックオーバーフローへの参照がいくつか見られました。

Windowsフォームアプリケーションは、次の参照を使用して構築されています。

  • DevExpress
  • InfragisticsWinformsコントロール
  • ORACLE DataAccess DLL
  • RabbitMQ

どうした?これを理解するにはどうすればよいですか?より有用な情報を取得するためにデバッグするにはどうすればよいですか?


それらの参照のどれがアンマネージコードを使用していますか?を実行しWinDbg、アプリケーションをロードして、エラーに関する情報が出力されるかどうかを確認します。
keyboardP

:それはORACLEモジュールであることが判明した場合も、おそらく関連stackoverflow.com/questions/2100955/...
keyboardP

3
メッセージボックス?深刻ですか?System.Diagnostics.Debugを見てください。
ヘンクホルターマン2011年

Debugger.Launch()は、その行を実行するときにプロセスをVisual Studioデバッガーにアタッチするように要求するので、これをエントリポイントの近くに貼り付けて、開始時にプロセスをアタッチできます。
友好的な2012

1
しばらく経ちましたが、問題を解決できましたか?この動作を報告する顧客がいます。ここで現像機で再現するのは難しいです。どうぞお気軽にソリューションを共有してください-賛成する価値があると思います。ありがとうございました!
deafjeff 2014

回答:


71

0xE0434352は、すべての.NET例外の例外コードであるため、あまりわかりません。この例外コードはどのようにして入手したのですか?イベントログ?

最善の策は、デバッガーを使用してより多くの情報を取得することです。Visual Studioデバッガーが役に立たない場合SOSでWinDbgをチェックアウトする必要があるかもしれません。紹介については、ここここを参照してください。例外を破って、その理由についてもっと情報を得ることができるかどうか見てみましょう。

アセンブリをロードするときに問題が発生していると思われる場合は、Fusionログを確認してください。


4
デバッガーを試す前に、Tergiverの答えを確認してください
Rabolf 2018年

82

イベントビューアからそのエラーが発生した場合は、ソース「.NETランタイム」から別のエラーイベント(少なくとも1つ)が表示されるはずです。Exception情報が含まれているので、そのエラーメッセージを見てください。


5
それは本当に私を助けました、ありがとう、それで私は依存関係の1つが欠けていることに気づきました(FileNotFound例外)
Pavel K

4

これが誰かに役立つかどうかはわかりませんが、それが私の問題だったので、言及する価値があると思います:

このエラーが発生しましたが、EXEが構築されたプラットフォームに問題があることが判明しました。x86用にビルドしましたが、プロジェクト内のOracle参照のため、x64である必要がありました。その変更を行ったとき、問題はなくなりました。したがって、同様の競合がないかどうかを確認してください。


4

このエラー0xe0434352は、さまざまなエラーに適用されるようです。

誰かに役立つ場合に備えて、新しいWindows 10インストールにアプリケーションをインストールしようとしたときに、このエラーが発生しました。それは他のマシンで動作し、アプリが死ぬ前に一時的に起動するように見えました。多くの試行錯誤の末、問題はアプリにDirectX9が必要であることが判明しました。DirectXの新しいバージョンが存在していましたが、バージョン9が必要でした。誰かのフラストレーションを軽減できることを願っています。


これは非常に特殊なケースです。この特定の状況に直面する人の数はわかりません。
エニオラ2018年

3

私はこれと一日中戦い、ユーザーにソフトウェアのデバッグバージョンを実行するように依頼していました。それは最初の行を実行しなかったように見えたので。情報のないただのクラッシュ。

次に、エラーがフォームのInitializeComponent内にあることに気付きました。

例外を取得する方法は、この行を削除する(またはコメントアウトする)ことでした。

System.Diagnostics.DebuggerStepThrough()

線を取り除くと、通常の例外が発生します。


2

アプリがデプロイされたときにこれを取得していました。私の場合、プロジェクトのセキュリティタブで「これは完全信頼のアプリケーションです」を選択しましたが、これで修正されました。


3
これはおそらく本当の修正ではありません。中程度の信頼環境で適切に実行されるように、アプリ/そのセキュリティ要求を設定することをお勧めします。しかし、それは便利な出発点です-ありがとう!
Rup 2011年

1

問題:

.Netアプリケーションコードは、実行を開始する前に中止されます[コンソールアプリケーションまたはWindowsアプリケーション]

受信したエラー:エラーコード「E0434352」で中止

例外:不明な例外

シナリオ1:

依存リソースの一部を使用し、それらのリソースが実行されたアプリケーションでまだ使用されているアプリケーションがすでに実行されている場合、別のアプリケーションまたは同じexeが他のソースからトリガーされると、アプリの1つがエラーをスローします

シナリオ2:シナリオ2:

アプリケーションがスケジューラーまたは自動ジョブによってトリガーされると、バックグラウンドで実行状態になっている可能性があります。一方、同じアプリケーションを再度トリガーしようとすると、エラーがトリガーされる可能性があります。

解決:

アプリケーションが完了したらすぐにすべてのリソースを解放するときに、アプリケーションを作成します。アプリケーションを閉じたら、すべてのバックグラウンドプロセスを強制終了します。バッチプロセス、タスクスケジューラ、外部ツールなどの複数のソースからアプリケーションを同時に実行しないようにします。アプリケーションとリソースの依存関係を確認し、必要に応じてコードをクリーンアップします。


私の場合、アプリケーションフォルダまたはその中のファイルはロック/オープンされていました-システムが名前を変更することを許可されていないためです(チェックする簡単なテストは、フォルダとサブフォルダが空いているか、オープン/ロックされています)。再びサーバー上のログオフ/ログオンした後、それがロックを解除する
Kuleris

0

この問題を修正するために(たとえば、CorelDraw X6が1つであるなど、多くのアプリケーションが突然この例外をスローし始めたため)、. NET 4.5ランタイムをアンインストールし、.NET4ランタイムをインストールしました。2つのバージョンを並べてインストールすることはできませんが、GACで同じバージョン番号を使用します。一部の関数は4.5で減価償却されているため、これにより問題が発生します。

DLL地獄が戻ってきました...


0

そのため、イベントビューアで、このクラッシュが「System.IO.FileNotFoundException」エラーに対応していることに気付きました。

そこで、ProcMonを起動すると、プログラムdllの1つがvcruntime140のロードに失敗していることに気付きました。だから私はvs15redistをインストールするだけでうまくいきました。


0

データベースへの接続文字列が正しくない場合、このエラーが発生しました。これを理解するための鍵は、指定されたSQLサーバーインスタンスが見つからなかったことを示すスタックトレースを提供するdotnetblah.dllを実行することでした。これが誰かを助けることを願っています。


0

これはやや古いスレッドであることはわかっていますが、作成していたac#/ WPFアプリでもこの問題が発生しました。アプリは開発マシンでは正常に動作しましたが、テストマシンでは起動しませんでした。イベントビューアのアプリケーションログで、System.IO.DirectoryNotFoundExceptionのややあいまいな.NETランタイムエラーが発生しました。

いくつかのデバッグソフトウェアを使用してみましたが、デバッガーをプロセスに接続するのに十分な時間、アプリが実行されたままになりませんでした。一日机に頭をぶつけて、このような多くのWebページを見た後、これをトラブルシューティングするためにやったことは、テストマシンにVS2019をインストールすることでした。次に、.exeファイルをそのフォルダー(Users [user] \ AppData \ Apps \ 2.0 ...フォルダーの奥深く)から開いているVS2019インスタンスにドラッグし、そこから開始しました。すぐに、例外と原因を示すダイアログボックスが表示されました。

私の場合、フォームの1つにアイコンを追加すると、アイコン名だけでなく、アイコンへの完全なパスがXAMLに配置されました。アイコンファイルをプロジェクトフォルダにコピーしましたが、テストマシンにプロジェクトフォルダが存在しないため、これがエラーの根本原因でした。次に、XAMLからパスを削除し、アイコン名を1つだけ残して、ソリューションを再構築して再公開しました。これで、テストマシンで問題なく実行されました。もちろん、エラーの原因以外にも多くの原因がありますが、Windowsイベントビューアでは多少あいまいな答えが返されるため、このトラブルシューティング方法でエラーの根本原因を特定できれば幸いです。

要約すると、テストマシン上のVisualStudioを一種のデバッガーとして使用します。ただし、正しく機能させるには、.exeファイルをIDEにドラッグし、そこから開始(実行)する必要がありました。これはVS2017だけでなくVS2019でも機能すると思います。うまくいけば、これはまだこの問題を抱えている誰かを助けるでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.