programing

"예외가 호출 대상에 의해 던져졌습니다." 오류(mscorlib)

lastmoon 2023. 6. 11. 11:14
반응형

"예외가 호출 대상에 의해 던져졌습니다." 오류(mscorlib)

ASP.Net 2.0에서 개발한 웹 사이트에서 오류를 발생시킵니다.

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

운영 환경에서 사용할 수 있습니다.개발 과정에서 이 오류를 발생시킨 것이 아닙니다.

소스는 'mscorlib'이고 스택 추적은 다음에서 오류를 말합니다.

System.RuntimeMethodHandle._InvokeMethodFast.

운영 환경에 마지막으로 업로드한 후 변경된 점은 구성원 제어(로그인, 로그인 보기)를 사용하기 시작하고 저장 프로시저와 테이블 등을 몇 가지 더 추가했다는 것입니다.회원 자격은 제가 작성한 사용자 지정 공급자에 따라 다릅니다.

왜 이런 일이 일어날 수 있는지 아는 사람?

내부 예외를 확인하는 것이 좋습니다.예외가 없는 경우 로그에서 이 예외 직전에 발생한 예외를 확인합니다.

이것은 웹에 특화된 예외가 아니라 데스크톱 앱 개발에서도 마주쳤습니다.간단히 말해서, 이 예외를 수신하는 스레드가 일부 비동기 코드(예: Invoke()를 통해)를 실행하고 있고 비동기적으로 실행되는 코드가 예외와 함께 폭발적으로 증가하고 있다는 것입니다.이 대상 호출 예외는 해당 실패의 여파입니다.

아직 예외 로깅 래퍼를 사용하지 않은 경우 이 오류를 트리거할 때 호출되는 비동기 콜백 주위에 배치합니다.예를 들어 이벤트 핸들러입니다.그것은 당신이 그 문제를 추적하는 데 도움이 될 것입니다.

행운을 빕니다.

이 문제는 존재하지 않는 메서드를 호출할 때 발생할 수 있습니다.

이상하다는 것은 알지만 c# 애플리케이션에 대해 이 오류를 경험했고 마침내 문제가 양식의 아이콘이라는 것을 내가 변경했을 때 모든 것이 정상적으로 작동한다는 것을 알게 되었습니다.

7번이나 8번이 아닌 XP에서만 이 오류가 발생했다고 봐야겠습니다.

Management Studio 2014를 통해 SQL Server 2017에 연결하려고 할 때 동일한 오류가 발생함

여기에 이미지 설명 입력

그 이유는 이전 버전과의 호환성 때문이었습니다.

그래서 Management Studio 2017을 다운로드하여 SQL Server 2017에 연결하려고 했습니다.

문제 해결!!

' 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

프로젝트를 시작 프로젝트로 설정하지 않았기 때문에 이 오류가 발생합니다.

현재 프로젝트를 Set As Start-Up Project(시작 프로젝트로 설정)로 설정하면 프로젝트가 사라집니다.

방금 네임스페이스 불일치로 인해 이 문제가 발생했습니다.XAML 파일이 포팅되고 있었고 파일 뒤에 있는 코드의 이름 공간과 다릅니다.

이것은 두 가지 이유가 있을 수 있습니다.

1.저는 제 web.config 파일에서 연결 문자열 오류를 발견했습니다. 제가 연결 문자열을 변경하고 작동했습니다.

  1. 연결 문자열이 올바르면 제어판 > 서비스 > SQL Server Browser > 시작 여부를 확인합니다.

제 문제는 앱 설정에서 연결 문자열을 올바른 위치에 넣지 않았다는 것입니다. json 그것은 IIS Express 개체 안에 있었고 프로필 개체 안으로 옮겼습니다. json {here } app 설정 안에 넣어 문제를 해결하지 못했습니다.

동일한 오류가 발생하여 대상 플랫폼을 "혼합 플랫폼"에서 "모든 CPU"로 변경하는 문제를 해결했습니다.

저의 경우 VS(.NET 5 콘솔 앱)에서 단일 파일로 게시하는 옵션을 선택했기 때문에 이 문제가 발생했습니다. 정상적으로 게시하도록 변경하면 예외가 사라졌습니다.

컨트롤러 폴더에 새 컨트롤러를 추가하려고 했지만 연결 문자열이 Web.config 파일의 entityFramework 태그 내부에 배치된 후 이 오류가 발생했습니다.

다른 서버에 대한 내부 호출이 있고 해당 서버가 논리적인 시간 내에 응답하지 않거나 서버를 호출하는 구성이 잘못되었을 때 발생합니다.다른 서버에 연결하는 문제를 해결한 후 해당 서버에서 올바른 데이터를 받았고 해당 서버 호출을 담당하는 기능이 제대로 작동하여 해당 오류가 발생하지 않습니다.

유효성 검사 필드를 편집했는데 오류가 해결되었습니다.

builder.Property(x => x.Name)**.UseIdentityColumn()**.HasMaxLength(200);  
builder.Property(x => x.Name)**.IsRequired()**.HasMaxLength(200);

제 경우에는 그냥 업데이트합니다.Oracle.ManagedDataAccess.Core에서 온 2.19.603.21.61

저도 같은 문제가 있었습니다.C#에서 보고서를 작성하려고 했는데 필드가 비어 있는지 공백인지 확인하지 않았습니다.

예외를 추가합니다.

디버깅할 때 InnerException이 발견되지 않으면 다른 Exception에 도달할 때까지 F5를 누르면 편리합니다(계속).또는 완전히 삭제된 경우 출력 창에서 자세한 내용을 확인할 수 있습니다.

저의 경우에는 이것이 효과가 있었습니다.

dotnet ef migrations add MyMigrationName --startup-project {your .csproj} --context {your context}

이것은 두 가지 이유를 가질 수 있습니다.

  1. 사용하다HasForeignKey를 할 때WithMany방법
builder.HasOne(m => m.Model).WithMany(m => m.ParentModel).HasForeignKey(m => m.Number)
  1. 삽입합니다.IsRequired
builder.Property(p => p.Number).IsRequired();

이 두 항목을 삭제해야 합니다.

언급URL : https://stackoverflow.com/questions/648113/exception-has-been-thrown-by-the-target-of-an-invocation-error-mscorlib

반응형