2014-01-08 7 views
0

와 ArgumentException이 오류가 나는 이벤트 ID와 함께 이벤트 로그를 작성하려고 할 때이 오류가 발생할 수> 여기은 EventLog WriteEntry() 나는 4.5 .NET으로 내 코드를 마이그레이션 한 이후 .NET 4.5

65535 IID는> 65535 내 코드 어디 :

System.Diagnostics.EventLog appLog = new System.Diagnostics.EventLog(); 
appLog.Source = "my source"; 
appLog.WriteEntry(sMsg, EventLogEntryType.Error, iID); 

정의에 따라 eventID가 int32이므로 잘 모르겠다. 여기에 스택 추적

: 어떤 도움을 환영합니다

at System.Diagnostics.EventLogInternal.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData) 
    at System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID) 
    at WSeProcFilesHandler.EventLog_AddEntry(String sMsg, Int32 iID) in d:\Liox\TFS\Eprocurement\Main\Dev\Eprocurement\Services\WAeProcFilesHandler\WSeProcFilesHandler.cs:line 567 

. 이벤트 ID UInt16.MaxValue에 비해 0보다 작거나 큰 - 감사

답변

0

음, 즉이

  • 또는 msdn

    경우 ArgumentException에 명시된 것.

Int32 형식 매개 변수가 정직하기 위해, UINT16로 제한됩니다 왜 설명 ...

에서는 Eventlogs 범주를 사용하는 것이 관리하는 방법 (이 overload 참조). 따라서 각 카테고리에 대해 65536 개의 ID를 가질 수 있습니다.

그건 그렇고, 그것은 별개의 eventlog ID가 많습니다.

+0

나는 그것이 내가 UInt16.MaxValue로 제한되는 이유를 이해하지 못하는 것처럼 보았다. 이 크기를 늘릴 수있는 방법이 있습니까? – Denfer06

+0

@ Denfer06 편집을 참조하십시오. –

+0

fixID를 사용하고 iID int를 sMsg 문자열로 옮깁니다. 당신의 도움을 주셔서 감사합니다 – Denfer06