2015-01-31 14 views
5

한 컴퓨터에서 이상한 동작의 맨 아래로 가려고합니다. 대화 형으로 실행되는 간단한 콘솔 응용 프로그램이 있지만 WMI를 통해 호출하면 즉시 시작되고 종료됩니다.퓨전 로그 어셈블리 바인더 오류 - 바인드 결과 : hr = 0x1. 잘못된 기능

Procmon이 알려지지 않았기 때문에 퓨전 로그가 활성화되었습니다. 다음 오류가 표시됩니다.

*** Assembly Binder Log Entry (31-01-2015 @ 19:22:51) *** 

The operation was successful. 
Bind result: hr = 0x1. Incorrect function. 

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 
Running under executable C:\CMCBOOTSTRAP\Cmc.Installer.Agent.Console.exe 
--- A detailed error log follows. 

BEGIN : Native image bind. 
END : Incorrect function. (Exception from HRESULT: 0x00000001 (S_FALSE)) 

"잘못된 기능"의 원인은 무엇입니까? 이 응용 프로그램이 WMI를 통해 시작될 때 효과적으로 죽지 않는 이유는 무엇입니까?

class Program 
{ 
    static void Main(string[] args) 
    { 
     Thread.Sleep(30000); 
    } 
} 

환경

내가 사소한 의미는 ... 윈도우 서버 2012 R2 및 .NET 4.5입니다.

+0

프로세스 시작시 이미지 파일 실행 옵션을 사용하여 디버거를 시작할 수 있습니다. Windbg를 사용하면 디버깅 서버로 시작할 수 있으므로 다른 세션에서 연결할 수 있습니다. 설정하기는 쉽지 않지만 직접적인 통찰력을 줄 것입니다. 또 다른 옵션은 앱을 프로파일 링하고 ETW로 CPU가 어디로 갈지를 확인하는 것입니다. –

+0

터미널 서버 게이트웨이를 통해서만이 컴퓨터에 연결할 수 있으며 컴퓨터에 인터넷에 액세스 할 수 없으므로 디버거를 원격으로 연결할 수 없습니다. 프로파일 러에서 제안하는 것이 확실하지 않습니다. 응용 프로그램이 한 줄의 코드라면 무엇을 찾고 싶습니까? ETW는 무엇입니까? –

+0

ETW를 통해 프로세스를 시작하면 디버거 UI에 데스크톱 액세스가없고 디버거를 사용할 수없는 세션 0에서 시작됩니다. 그러나 Windbg를 디버깅 서버 프로세스로 시작할 수 있으며 TCP 또는 명명 된 파이프를 통해 로컬로 연결할 수 있으므로 어떤 일이 벌어지는 지 확인할 수 있습니다. ETW는 Windows 용 이벤트 추적입니다. 예 : PerfView. 관리되는 예외가 발생하면이를 프로파일 링 데이터에서 볼 수 있습니다. 예외 경로가 느려지므로 잘못된 점이 무엇인지 알 수 있습니다. –

답변

12

이것은 완전히 일반적인 사고입니다. 로그 카테고리 설정에서 "기본 이미지"라디오 버튼을 선택하여 Fuslogvw.exe에서 가져 왔습니다. 내 컴퓨터에서도 쉽게 재현 할 수 있으며 많은 것들을 볼 수 있습니다.

실제 오류 코드는 S_FALSE이며 COM 오류 코드는 "성공적으로 실패했습니다"를 의미합니다. 그래서 그것이 The operation was successful라고 말합니다. "Function failed"라는 진단 메시지의 잘못된 해석은 Windows 오류 1에 대한 설명이며 FormatMessage() winapi 함수에 의해 반환됩니다.

성공적인 실패가 예상됩니다. 콘솔 모드 앱에서 Ngen.exe를 아직 실행하지 않았으므로 기본 이미지를 사용할 수 없습니다. 계속 찾고있어, 그렇지 않아. 로그 범주를 다시 "기본값"으로 변경하면 기본 이미지가 문제가되지 않습니다.

+0

감사합니다. 정사각형으로 돌아갑니다. 왜이 응용 프로그램이 시작하고 즉시 죽을지 모르겠다. 나는 GFlags가 시작할 때 디버거를 부착 할 수 없다. –

+6

나는 합리적인 추측은 물론 없다. 기계를 4 층 층으로 드래그하여 창 밖으로 빠져 나오게하십시오. 창을 먼저 여는 것은 선택 사항입니다. –

+0

물론 이것은 오직 하나의 머신에서만 발생합니다. –