문제

사용자가 다음과 같은 오류를보고 할 때마다

System.runtime.interopservices.sehexception - 외부 구성 요소가 예외를 던 졌습니까?

프로그래머로서 원인을 결정하기 위해 할 수있는 일이 있습니까?

시나리오 : 회사가 쓴 프로그램을 사용하여 한 사용자 가이 오류를보고했습니다. 이것은 하나의 오류 일 수도 있고 아닐 수도 있습니다. 그들은 지난 달에 컴퓨터가 두 번 '작동 중지'되었다고 언급했다. 나는 일반적으로 컴퓨터와 관련된 누군가가 예상대로 작동하지 않는다는 것을 의미하기 때문에이 설명을 문자 그대로 받아들이지 않는 경험에서 배웠습니다. 그들은 나에게 더 자세한 내용을 줄 수 없었고 기록 된 오류를 찾을 수 없었습니다. 따라서이 오류 일 수도 있고 아닐 수도 있습니다.

스택 트레이스에서 실제 오류는 인터 로프 코드를 직접 호출하지 않는 클래스를 구성 할 때였지만 객체가 DeVexpress 그리드에 대한 데이터가있는 목록의 일부일 수 있다는 사실에 의해 복잡해 졌을 것입니다.

오류는 일반적으로 프로그램을 닫지 만 무시하고 계속할 수있는 옵션이있는 처리되지 않은 예외 루틴에 의해 '잡혔다'. 그들이 오류를 무시하기로 선택하면 프로그램은 계속 작동하지만이 루틴이 다음에 실행될 때 오류가 다시 발생했습니다. 그러나 응용 프로그램을 닫고 다시 시작한 후에는 다시 발생하지 않았습니다.

문제의 컴퓨터는 스트레스를받지 않은 것 같습니다. Vista 비즈니스를 운영하고 있으며 2GB의 메모리를 보유하고 있으며 작업 관리자에 따르면 응용 프로그램의 약 절반 만 사용하고있었습니다.

관련이 있거나 그렇지 않을 수도있는 다른 정보가 있습니다. 동일한 프로그램의 다른 섹션에서는 기본 DLL 주변의 도트 넷 래퍼 인 타사 구성 요소를 사용 하며이 구성 요소는 알려진 문제가 있습니다.

보호 된 메모리를 읽거나 쓰려고 시도했습니다. 이것은 종종 다른 메모리가 손상되었음을 나타냅니다.

구성 요소 제조업체는 이것이 우리가 사내에서 사용하는 최신 구성 요소에 고정되었다고 말하지만 아직 고객에게 제공되지 않았습니다.

오류의 결과가 낮다는 점을 감안할 때 (작업이 없어지지 않고 프로그램을 다시 시작하고 최대 1 분 밖에 걸리지 않음) 고객이 곧 새 버전을 받게 될 경우 (업데이트 된 세 번째. 파티 구성 요소), 나는 분명히 손가락을 건너 갈 수 있으며 오류가 다시 발생하지 않기를 바랍니다.

그러나 내가 할 수있는 일이 더 있습니까?

도움이 되었습니까?

해결책

예. 이 오류는 .NET 오류에 매핑되지 않은 구조화 된 예외입니다. 아마도 당신의 DataGrid 매핑이 잡히지 않은 기본 예외를 던질 것입니다.

당신은 externalexception.errorcode 재산. 스택 추적을 확인하고 Devexpress 그리드에 묶여 있으면 문제를보고하십시오.

다른 팁

나는 내 프로그램이 처음 DLL 래퍼를 사용했을 때 던져진 sehexception과 비슷한 문제가있었습니다. 그 래퍼의 기본 DLL이 누락되었다고 밝혔다. 예외는 이것을 해결하는 데 도움이되지 않았습니다. 결국 도움이 된 것은 백그라운드에서 Procmon을 실행하고 필요한 모든 DLL을로드 할 때 오류가 있는지 확인하는 것이 었습니다.

이 게시물에서 설명한대로 문제가있는 경우 :

ASP.NET MVC 디버거 스테이 징크

그러면 해결책은 다음과 같습니다.

Trusteer (Rapport 등)의 응용 프로그램이 있으면 시스템을 제거하고 시스템을 재부팅하면 잘 작동합니다 ... 여기 에서이 솔루션을 찾았습니다.

http://forums.asp.net/t/1704958.aspx/8/10?re+sehexception+thrown+ WHEN+IIRUN+ the+ application

구성 요소 제조업체는 이것이 우리가 사내에서 사용하는 최신 구성 요소에 고정되었다고 말하지만 아직 고객에게 제공되었습니다.

구성 요소 제조업체에게 고객이 얻는 문제가 최신 버전을 고객에게 배포하지 않고/최신 버전을 배포하지 않고 최신 버전에서 해결했다고 말하는 문제인지 테스트하는 방법을 물어보십시오.

앱이 네트워크 공유에 상주 할 때이 오류가 발생했으며 앱을 사용하는 동안 장치 (랩톱, 태블릿, ...)가 네트워크에서 분리됩니다. 제 경우에는 표면 태블릿이 무선 범위를 벗어나기 때문입니다. 더 나은 WAP를 설치 한 후에는 문제가 없습니다.

또 다른 정보는 ... UNC/네트워크 경로에서 응용 프로그램이 시작된 Windows 2012 R2 X64 TS 시스템에서 오늘 문제가있었습니다. 모든 터미널 서버 사용자를위한 하나의 응용 프로그램에 대한 문제가 발생했습니다. 응용 프로그램 실행은 로컬로 문제없이 작동했습니다. 재부팅 후 다시 작동하기 시작했습니다.

내 컴퓨터 구성 :

운영 체제 : Windows 10 버전 1703 (x64)

Visual Studio 2017 Community Edition에서 C# .NET 프로젝트를 디버깅하는 동안이 오류에 직면했습니다. 런타임에로드 된 C ++ 어셈블리에서 P/Invoke를 수행하여 기본 방법을 호출했습니다. 나는 OP에 의해보고 된 것과 동일한 오류를 발견했다.

Visual Studio가 기계의 관리자가 아닌 사용자 계정으로 출시되었음을 깨달았습니다. 그런 다음 컴퓨터의 관리자 인 다른 사용자 계정으로 Visual Studio를 다시 시작했습니다. 그게 다야. 내 문제가 해결되었고 다시 문제에 직면하지 않았습니다.

주목할만한 점은 C ++ 어셈블리에서 호출 된 방법이 레지스트리에 몇 가지를 써야한다는 것입니다. C ++ 코드를 일부 RCA를 수행하기 위해 디버깅하지는 않았지만 Windows 10 운영 체제에서 레지스트리를 작성하기 위해 관리 권한이 필요하기 때문에 모든 것이 실패했을 가능성이 있습니다. 따라서 Visual Studio가 기계에 관리 권한이없는 사용자 계정으로 실행될 때, 기본 전화가 실패했습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top