問題タブ [targetinvocationexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - スタック トレースを失わずに TargetInvocationException の内部例外を再スローする方法
を使用して呼び出している多くのメソッドがありますDelegate.DynamicInvoke
。これらのメソッドのいくつかはデータベース呼び出しを行います。私は、 a をキャッチし、 をキャッチせSqlException
ずTargetInvocationException
にその内部を調べて、実際に何が問題なのかを見つける機能を持ちたいと考えています。
このメソッドを使用して再スローしましたが、スタック トレースがクリアされます。
メソッドは、別の投稿のおかげで修正した拡張メソッドです(PreserveStackTrace
実際に何をするかはわかりません)。ただし、これもトレースを保持していないようです。
c# - ASP.NET の死のイエロー スクリーン - スタック トレースはどこから取得しますか?
TargetInvocationExceptions
アプリケーション内に、内部例外を回避して取得するリモーティング タイプを設定しています。クラスで内部PrepForRemoting
メソッドを呼び出してException
、呼び出されたメソッドからのスタック トレースを保持します。
これにより、スタック トレース プロパティが正しく構築されているように見えます。
"\r\nサーバー スタック トレース: \r\n
C:\dev\ZBookings\core\ZZBookings.Services\BookingService.cs:line 79の ZBooking.Environment.Services.BookingService.<>c_ DisplayClass9`1.b _5(BookingSlot p) で\r\n
System.Linq.Enumerable.All[TSource](IEnumerable'1 ソース、Func'2 述語) で\r\n
C:\dev\ZBooking.Client\core\ZBookings.Services\BookingService.cs の ZBookings.BookingService.MoveBooking[TBookingType](Int32 bookingId, >IEnumerable`1 bookingSlots):79 行目\r\n\r\n
[0] で例外が再スローされました: \r\n at ZBookings.BookingService.<>c_ DisplayClass9`1.b _5(BookingSlot p) in C:\dev\ZBookings\core\ZBookings.Services\BookingService.cs:line 79\ r\n
System.Linq.Enumerable.All[TSource](IEnumerable'1 ソース、Func'2 述語) で\r\n
ZBookings.BookingService.MoveBooking[TBookingType](Int32 bookingId, IEnumerable`1 bookingSlots) で C:\dev\ZBookings\core\ZBookings.Services\BookingService.cs:line 79"
ただし、これを標準の ASP.NET イエロー スクリーンで表示すると、次のようになります。
[NullReferenceException: オブジェクト参照がオブジェクトのインスタンスに設定されていません。] C:\dev\ZBooking\core\ZBooking.ApplicationServices\MethodMarshaller の ZBooking.ApplicationServices.MethodMarshaller.Invoke(Delegate del, ZipIdentity zipIdentity, Object[] args)。 C:\dev\ZBooking\core\ZBooking.ApplicationServices\MethodMarshaller.cs:105 ZBooking.ApplicationServices.MethodMarshaller.Call(Func 内の cs:147 ZBooking.ApplicationServices.MethodMarshaller.Invoke(Delegate del, ZipIdentity zipIdentity, Object[] args) '3 del、T1 arg1、T2 arg2、ZipIdentity zipIdentity) in C:\dev\ZBooking\core\ZBooking.ApplicationServices\MethodMarshaller.cs:72
...など。
Global.asax で Application_Error を呼び出すServer.GetLastError();
と、正しいスタック トレースが表示されます。イエロー スクリーンのスタック トレースはどこから来ていますか?
wpf - リフレクションを介して呼び出されたクラスライブラリでのDispatcherUnhandledException
リフレクションを使用してWPFMVVMクラスライブラリを読み込みます。ここで説明するように、例外ハンドラーも必要です。
これはホステッドWPFアプリであるため、App.xamlを使用できません。ここで説明するように、アプリケーションをロードするクラスに必要なものをすべて実装したのはそのためです。
ここでの問題は、(backgroundworkerスレッドBTWから)例外をスローすると、うまく機能しないことです。実際、Dispatcher.Invokeを呼び出して(UIスレッドで例外をスローするために)手動でNullReferenceExceptionをスローし、Current_DispatcherUnhandledExceptionデバッガーに入ると、表示される例外はNullReferenceExceptionではなく、hellyTargetInvocationExceptionです。 「呼び出しのターゲットによって例外がスローされました」というメッセージが表示されます。
この例外は、リフレクションによってWPFdllを呼び出すinvokeメソッドによってスローされる可能性があることがわかりました。
NullReferenceExceptionは、wpfアプリケーションの前に「WPFクラスライブラリ呼び出し元メソッド」によってキャッチされているようです...
それは私を夢中にさせています!
助けてください !
c# - C# TargetInvocationException - (存在しないはずですか?)
私は WPF で簡単なアプリを作成しようとしていますが、少し異常に遭遇しました。2 つのクラスがあります。部分クラス (WPF ウィンドウ用) と、自分で設定した別のパブリック クラスです。WPF ウィンドウ クラスから作成したクラスにアクセスしようとすると、オブジェクト参照がオブジェクトのインスタンスに設定されていないことを示す TargetInvocationException が発生します。ただし、例外が発生するオブジェクト参照は、オブジェクトのインスタンスに設定されます。
これが私のコードです:
もちろん、これは 1 つの名前空間にあります。オブジェクト参照 CP は明らかに CurrentParent のインスタンスであるため、このエラーが発生する理由がわかりません。
誰でもこれを修正する方法を知っていますか? 前もって感謝します!
-イアン
silverlight - センチメント API の呼び出し後に TargetInvocationException がスローされる
ツイートをマップ上に表示し、センチメント API を使用してツイートを分析する Silverlight Web アプリケーションを開発しています。センチメント API を 3、4 週間問題なく使用できました。その後、センチメント API を呼び出した後に TargetInvocationException が発生することがありました。
ここで、センチメント API をどんどん呼び出すと、TargetInvocationException に直面します。
XDocument newdoc = XDocument.Parse(en.Result);
en.Result が null になり、
例外が表示されます:
System.Reflection.TargetInvocatinException : 操作中に例外が発生したため、結果が無効になりました。例外の詳細については、InnerExceptionon を確認してください。---> System.Net.WebException: リモート サーバーがエラーを返しました: NotFound ---> System.Net.WebException : リモート サーバーがエラーを返しました: NotFound。System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult ayncResult) at System.Net.Browser.BrowserHttpWebRequest.<>c_DisplalyClass4.b__1(Object sendState) ---System.Net.Browser.AsyncHelper での内部例外スタック トレースの終わり。 System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult ayncResult) での BeginOnUI (SendOrPostCallback beginMethod、オブジェクト状態) System.Net.WebClient.GetWebResponse(WebRequest、IAsyncResult 結果) で System.Net.WebClient.
c# - EPPlus 2.9.0.1 は、SSIS パッケージから ~1.5 MiB を超えるファイルを保存しようとすると、System.IO.IsolatedStorage.IsolatedStorageException をスローします。
問題
EPPlus で ~1.5 MiB を超えるファイルを保存しようとするとExcelPackage.Save()
、System.IO.IsolatedStorage.IsolatedStorageException
.
説明
ライブラリを介してテーブルのコンテンツをエクスポートするためにVisual Studio 2008 9.0.30729.4462 QFE
、SSIS パッケージを作成しています。.NET Framework 3.5 SP1
SQL Server 2008 SP2 10.0.4311.0 64 bit
EPPlus 2.9.0.1
SSIS パッケージは非常にシンプルです。Execute SQL Task
テーブルの内容を読み取って変数に格納し、その後Script task
にレコードセット変数を読み取って内容を EPPlus を介してディスクに保存する です。
スクリプト タスクのコードは次のとおりです。
スクリプト タスクにいくつかのレコードのみをフィードすると、パッケージは正常に実行されますが、テーブル全体に対して実行するpackage.Save();
と、例外が発生して爆発しSystem.IO.IsolatedStorage.IsolatedStorageException: Unable to determine the identity of domain
ます。
ここでは、完全なスタック トレースを確認できます。
生成されたファイルのサイズの問題を特定できました。Excel ファイルのサイズが約 1.5 MiB になると (これは多かれ少なかれ値であり、正確なサイズを見つけることができませんでした)、エラーが表示されます。
私がネット上で見つけることができた唯一の情報はブログ投稿です。ブロガーは、コードを DLL に「外部委託」し、それをサーバーの GAC にアップロードしてから、次のコードを実行するソリューションを提案しています。
ただし、サーバーの GAC にアクセスできず、DLL をアップロードできないため、このソリューションを試すことができません。
この問題を回避する他の方法はありますか?
また、この問題に関する EPPlus の問題トラッカーでバグ レポートを開きました。
サマリー
- SSIS パッケージ
- Visual Studio 2008 9.0.30729.4462 QFE
- .NET フレームワーク 3.5 SP
- SQL Server 2008 SP2 10.0.4311.0 64 ビット
- EPプラス 2.9.0.1
- 大きな出力ファイル
- System.IO.IsolatedStorage.IsolatedStorageException: ドメインの ID を特定できません
c# - C#の逆シリアル化-TargetInvocationExceptionをキャッチしても安全ですか?
BinaryFormatterを使用して、いくつかのオブジェクトをシリアル化および逆シリアル化します。これらのオブジェクトの構造は次のとおりです。
オブジェクトを逆シリアル化しようとすると、「SomeProperty」エントリが見つからない場合(たとえば、名前が変更されたか削除されたため)、TargetInvocation例外がスローされることに気付きました。将来、SerializableObjectクラスのプロパティを変更する予定なので、次のようにアプリケーションをクラッシュさせるのではなく、例外をキャッチして問題のあるプロパティの値をデフォルト値に設定することを考えていました。
ご存知のように、処理方法がわからない、または処理できない例外をキャッチすることは悪い習慣なので、この場所でキャッチしても安全かどうかを尋ねています。他の理由(私にはわからないため、処理すべきではない)で同じ例外をスローできますか?
.net - BackgroundWorker_RunWorkerCompleted からの TargetInvocationException
次の状況を想定します。フォームには、クリックするとバックグラウンド ワーカーを開始するボタンがあります。RunWorkerCompleted イベント ハンドラーには、未処理の例外をスローするコードがあります。フォームは Application.Run メソッドから開始されます。
問題は、FormMain.backgroundWorker_RunWorkerCompleted メソッドの "throw new Exception()" ではなく、Application.Run 呼び出しで Visual Studio が中断することです。その上、実際の例外は TargetInvocationException でラップされ、コール スタックは Program.Main メソッドに削減され、そのために例外を引き起こしたコードを検査できません。
そのラッピングを防ぐ方法は?私は本質的に間違ったことをしていますか?
TargetInvocationException で提供されるコール スタックから判断すると、多くの呼び出しメソッドが積み上げられており、メッセージ ループの基本的な理解とスレッド化のそれほど基本的ではない理解には多すぎます。
編集: TargetInvocationException に InnerException プロパティがあり、そこを見ることでエラーを追跡できることは知っていますが、それは問題ではありません。問題は、TargetInvocationException で実際の例外をラップする前に Visal Studio を停止して、VS IDE が提供する優れたデバッグ機能をすべて使用できるようにする方法です。
.net - ContentPresenter でカスタマイズされた UserControl、ネストされたオブジェクトは null
MainPage.xaml でデータ コンテナーとして使用したカスタマイズされた UserControl (CustomControl1) があります。
MainPage-CustomControl1 のコンテンツとして、いくつかのボタンを配置しました。
私のエラー/質問:
ボタンは表示されますが、ボタンのプロパティを設定しようとするとエラーが発生します。
ボタン オブジェクトは null になります…。しかし、なぜ?
さらに、開発環境でネストされたオブジェクトをクリックしても、ネストされたオブジェクトからイベントが発生しません。XAML でネストされたオブジェクトを選択した場合にのみ、[オブジェクト] -> [プロパティ] -> [イベント] を使用できます。
Silverlight ソース:
Vers.4
Ver.6、TemplateBinding およびエラーあり
何を変更する必要がありますか?
CustomControl1 の ContentPresenter バインディングのエラーである可能性があると思います。
この種の問題があるページをたくさん見つけました...しかし、エラーを修正できませんでした...
私のCustomControl1.xaml:
私の CustomControl1.xaml.cs:
私の MainPage.xaml:
c# - TargetInvocationExceptionは、DoWorkBackgroundworkerメソッドの最後で処理されませんでした
DoWorkは次のとおりです。
最後の}に到達するとすぐに、TargetInvocationExceptionが未処理のエラーになります(コードのコメントを参照)。
なぜこれが突然起こり始めたのかわかりません。誰かが理由を知っていますか?
最後に、RunWorkerCompletedは次のとおりです。