성태의 닷넷 이야기
홈 주인
모아 놓은 자료
프로그래밍
질문/답변
사용자 관리
사용자
메뉴
아티클
외부 아티클
유용한 코드
온라인 기능
MathJax 입력기
최근 덧글
[정성태] Working with Rust Libraries from C#...
[정성태] Detecting blocking calls using asyn...
[정성태] 아쉽게도, 커뮤니티는 아니고 개인 블로그입니다. ^^
[정성태] 질문이 잘 이해가 안 됩니다. 우선, 해당 소스코드에서 ILis...
[양승조
] var대신 dinamic으로 선언해서 해결은 했습니다. 맞는 해...
[양승조
] 또 막혔습니다. ㅠㅠ var list = props[i].Ge...
[양승조
] 아. 감사합니다. 어제는 안됐던것 같은데....정신을 차려야겠네...
[정성태] "props[i].GetValue(props[i])" 코드에서 ...
[정성태] 저렇게 조각 코드 말고, 실제로 재현이 되는 예제 프로젝트를 압...
[정성태] Modules 창(Ctrl+Shift+U)을 띄워서, 해당 Op...
글쓰기
제목
이름
암호
전자우편
HTML
홈페이지
유형
제니퍼 .NET
닷넷
COM 개체 관련
스크립트
VC++
VS.NET IDE
Windows
Team Foundation Server
디버깅 기술
오류 유형
개발 환경 구성
웹
기타
Linux
Java
DDK
Math
Phone
Graphics
사물인터넷
부모글 보이기/감추기
내용
<div style='display: inline'> <h1 style='font-family: Malgun Gothic, Consolas; font-size: 20pt; color: #006699; text-align: center; font-weight: bold'>이벤트 로그 - Windows Error Reporting / IPX Assertion / KorIME.exe</h1> <p> 이벤트 로그에 다음과 같은 비정상 종료 이벤트가 남습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Log Name: Application Source: Windows Error Reporting Date: 2014-11-03 오후 3:32:17 Event ID: 1001 Task Category: None Level: Information Keywords: Classic User: N/A Computer: win2012rp.testad.com Description: Fault bucket , type 0 Event Name: IMECustomerEvent Response: Not available Cab Id: 0 Problem signature: P1: IPX Assertion P2: 0KOR P3: KorIME.exe P4: 6.3.9600.16384 P5: KorIME.exe P6: 6.3.9600.16384 P7: Windows\feime\Modern\IMEexe\common\CImeKeyboardInputProvider.h P8: 489 P9: P10: Attached files: These files may be available here: C:\ProgramData\Microsoft\Windows\WER\ReportQueue\NonCritical_IPX Assertion_b991e9b37c61384f40913141a13bc6244838d85e_00000000_cab_4c625e60 Analysis symbol: Rechecking for solution: 0 Report Id: 26b5115c-6323-11e4-bc59-00155d805a04 Report Status: 4 Hashed bucket: </pre> <br /> 예전에도 한번 이에 관해서 다뤘는데요.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Windows Server 8.1/2012 R2 - IME 비정상 종료 현상 ; <a target='tab' href='http://www.sysnet.pe.kr/2/0/1509'>http://www.sysnet.pe.kr/2/0/1509</a> </pre> <br /> 그 당시에는 WER 서비스를 중지하는 것으로 답을 냈는데 왠지 아무리 생각해도 이건 아니다 싶습니다. ^^ 그런데, 지금도 여전히 이에 대해 검색해 보면 이렇다 할 답이 없습니다. 그나마 영양가 있는 답이라면, WER 서비스로 하여금 KorIME.exe를 무시하도록 설정하는 것이 있는데요.<br /> <br /> WER 서비스를 보면,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > Windows Error Reporting ; <a target='tab' href='https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb490841(v=technet.10)'>https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-xp/bb490841(v=technet.10)</a> </pre> <br /> 다행히, 특정 exe 프로세스를 대상으로 무시하는 옵션을 추가할 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > WER Settings ; <a target='tab' href='https://docs.microsoft.com/en-us/windows/win32/wer/wer-settings'>https://docs.microsoft.com/en-us/windows/win32/wer/wer-settings</a> </pre> <br /> 방법은 이렇습니다. 다음의 레지스트리 키로 가서,<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting </pre> <br /> 하위에 "ExcludedApplications" 서브 키가 없다면 새롭게 생성하고, 필터링하고 싶은 EXE 명의 REG_DWORD 유형으로 1 값을 넣어 생성해 둡니다. 예를 들어, 필터링하고 싶은 EXE 명이 "MyConsole.exe"라면 다음과 같이 생성할 수 있습니다.<br /> <br /> <img alt='ime_error_1.png' src='/SysWebRes/bbs/ime_error_1.png' /> <br /><br /> 따라서, 이 글에서 다루고 있는 이벤트 로그를 없애고 싶다면 "KorIME.exe" 이름으로 값을 생성하면 됩니다.<br /> <br /> <hr style='width: 50%' /><br /> <br /> 참고로, 프로그램으로도 이 레지스트리 키를 다룰 수 있습니다. 해당 레지스트리에 항목을 넣고 빼는 Win32 API로 다음의 함수들이 제공됩니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > WerAddExcludedApplication ; <a target='tab' href='https://docs.microsoft.com/en-us/windows/win32/api/werapi/nf-werapi-weraddexcludedapplication'>https://docs.microsoft.com/en-us/windows/win32/api/werapi/nf-werapi-weraddexcludedapplication</a> WerRemoveExcludedApplication ; <a target='tab' href='https://docs.microsoft.com/en-us/windows/win32/api/werapi/nf-werapi-werremoveexcludedapplication'>https://docs.microsoft.com/en-us/windows/win32/api/werapi/nf-werapi-werremoveexcludedapplication</a> </pre> <br /> C#으로는 PInvoke 구문을 이용해 이런 식으로 만들 수 있습니다.<br /> <br /> <pre style='margin: 10px 0px 10px 10px; padding: 10px 0px 10px 10px; background-color: #fbedbb; overflow: auto; font-family: Consolas, Verdana;' > using System; using System.Diagnostics; using System.Runtime.InteropServices; class Program { <span style='color: blue; font-weight: bold'> [DllImport("wer.dll", CharSet = CharSet.Unicode, SetLastError = true)] public extern static int WerAddExcludedApplication(string exeName, bool allUsers); [DllImport("wer.dll", CharSet = CharSet.Unicode)] public extern static int WerRemoveExcludedApplication(string exeName, bool allUsers);</span> static void Main(string[] args) { string exeName = Process.GetCurrentProcess().ProcessName + ".exe"; Console.WriteLine(exeName); int result = <span style='color: blue; font-weight: bold'>WerAddExcludedApplication(exeName, true);</span> int win32Error = Marshal.GetLastWin32Error(); if (result != 0) { Console.WriteLine("Error: " + result + ", Win32Error: " + win32Error); // 1300: Not all privileges or groups referenced are assigned to the caller. } Console.ReadLine(); <span style='color: blue; font-weight: bold'>WerRemoveExcludedApplication(exeName, true);</span> } } </pre> <br /> 당연하겠지만, HKEY_LOCAL_MACHINE 레지스트리 키를 건드리는 것이므로 관리자 권한으로 실행하지 않으면 1300 오류가 발생합니다.<br /> </p><br /> <br /><hr /><span style='color: Maroon'>[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]</span> </div>
첨부파일
스팸 방지용 인증 번호
1987
(왼쪽의 숫자를 입력해야 합니다.)