「呼び出しのターゲットによって例外がスローされました」エラー(mscorlib)
質問
エラーをスローしているASP.Net 2.0で開発されたWebサイトがあります
"Exception has been thrown by the target of an invocation"
実稼働環境での。開発時にこのエラーをスローしていませんでした。
ソースは「mscorlib」であり、スタックトレースは
でエラーを示しますSystem.RuntimeMethodHandle._InvokeMethodFast.
本番環境への最後のアップロード以降に変更した唯一のことは、メンバーシップコントロール(Login、LoginView)の使用を開始し、さらにいくつかのストアドプロシージャやテーブルなどを追加したことです。メンバーシップはカスタムに依存します私が書いたプロバイダー。
これがなぜ起こるのか、誰にも手がかりがありますか?
解決
内部例外をチェックすることをお勧めします。存在しない場合は、このイベントの直前に発生した例外についてログを確認してください。
これはWeb固有の例外ではなく、デスクトップアプリ開発でも発生しました。つまり、この例外を受け取ったスレッドは(Invoke()などを介して)非同期コードを実行しており、非同期で実行されているコードは例外で爆発しています。このターゲット呼び出し例外は、その失敗の余波です。
まだ行っていない場合は、このエラーをトリガーしたときに呼び出される非同期コールバックの周りに何らかの例外ロギングラッパーを配置します。たとえば、イベントハンドラー。これは、問題の追跡に役立つはずです。
がんばって!
他のヒント
これは、存在しないメソッドを呼び出すときに発生する可能性があります。
そのような奇妙なことは知っていますが、C#アプリケーションでこのエラーが発生し、最終的に問題がフォームのアイコンであることがわかりました!変更すると、すべて正常に動作しました。
7または8ではなくXPでこのエラーが発生したと言ってください。
' 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
名前空間の不一致が原因でこの問題が発生しました。 XAMLファイルは移植されており、コードビハインドファイルの名前空間とは異なる名前空間がありました。
これには2つの理由があります
1。web.configファイルに接続文字列エラーが見つかりました 接続文字列とその動作を変更しました。
- 接続文字列が適切な場合は、コントロールパネルで確認してください>サービス> SQL Serverブラウザ> 開始するかどうか
同じエラーが発生し、ターゲットプラットフォームを" Mixed Platforms"から変更して解決しました。 「任意のCPU」へ
このエラーは、プロジェクトを StartUp Project として設定していないために発生します
現在のプロジェクトを[スタートアッププロジェクトとして設定]に設定すると、削除されました。