web-dev-qa-db-ja.com

「呼び出しのターゲットによって例外がスローされました」エラー(mscorlib)

ASP.Net 2.0で開発されたWebサイトでエラーがスローされています

"Exception has been thrown by the target of an invocation" 

実稼働環境で。開発ではこのエラーをスローしていませんでした。

ソースは「mscorlib」であり、スタックトレースは次のエラーを示します

System.RuntimeMethodHandle._InvokeMethodFast.

本番環境への最後のアップロード以降に変更した唯一のことは、Membershipコントロール(Login、LoginView)の使用を開始し、さらにいくつかのストアドプロシージャやテーブルなどを追加したことです。書かれた。

なぜこれが起こっているのか誰にも手がかりがありますか?

55
Donnie Thomas

内部の例外を確認することをお勧めします。存在しない場合は、このイベントの直前に発生した例外についてログを確認してください。

これはWeb固有の例外ではなく、デスクトップアプリ開発でも発生しました。つまり、この例外を受け取ったスレッドは(Invoke()などを介して)非同期コードを実行しており、非同期で実行されているコードは例外で爆発しています。このターゲット呼び出し例外は、その失敗の余波です。

まだ行っていない場合は、このエラーをトリガーしたときに呼び出される非同期コールバックの周りに何らかの例外ログラッパーを配置します。たとえば、イベントハンドラー。これは、問題を追跡するのに役立つはずです。

幸運を!

56
Greg D

これは、存在しないメソッドを呼び出すときに発生する可能性があります。

19
Casey Burns

私はそのような奇妙なことを知っていますが、C#アプリケーションでこのエラーが発生し、最終的に問題はフォームのアイコンであることがわかりました!変更すると、すべて正常に機能しました。

7または8ではなくXPでこのエラーが発生したと言う必要があります。

3
' Get the your application's application domain.
Dim currentDomain As AppDomain = AppDomain.CurrentDomain 

' Define a handler for unhandled exceptions.
AddHandler currentDomain.UnhandledException, AddressOf MYExHandler 

' Define a handler for unhandled exceptions for threads behind forms.
AddHandler Application.ThreadException, AddressOf MYThreadHandler 

Private Sub MYExnHandler(ByVal sender As Object, _
ByVal e As UnhandledExceptionEventArgs) 
Dim EX As Exception 
EX = e.ExceptionObject 
Console.WriteLine(EX.StackTrace) 
End Sub 

Private Sub MYThreadHandler(ByVal sender As Object, _
ByVal e As Threading.ThreadExceptionEventArgs) 
Console.WriteLine(e.Exception.StackTrace) 
End Sub

' This code will throw an exception and will be caught.  
Dim X as Integer = 5
X = X / 0 'throws exception will be caught by subs below
2
abc

名前空間の不一致からこの問題が発生しました。 XAMLファイルは移植されており、コードビハインドファイルの名前空間とは異なる名前空間がありました。

1
Greg Sipes

このエラーは、プロジェクトをStartUp Projectとして設定していないために発生します

現在のプロジェクトをSet As Start-Up Projectに設定すると、なくなりました。

0
shaishav shukla

同じエラーが発生し、ターゲットプラットフォームを「混合プラットフォーム」から「任意のCPU」に変更することで解決しました

0
Jaime Vasquez

これには2つの理由があります

1. web.configファイルに接続文字列エラーが見つかりました。接続文字列とその動作を変更しました。

  1. 接続文字列が適切である場合は、コントロールパネル>サービス> SQL Server Browser> startであるかどうかを確認してください
0
Sameer Bahad