레지스트리 값이 잘못되어 메시지 큐 서비스를 시작할 수 없습니다.

Microsoft.MSMQ.10.0.Rule.Alert.Event2000 (Rule)

레지스트리 값이 잘못되어 Message Queuing 서비스를 시작할 수 없습니다.

Knowledge Base article:

요약

레지스트리 값이 잘못되어 Message Queuing 서비스를 시작할 수 없습니다.

원인

잘못된 값 때문에 레지스트리에서 구성 정보를 읽을 수 없으므로 MSMQ 서비스를 시작할 수 없습니다. 레지스트리가 손상되었거나 Message Queuing가 제대로 설치되지 않았기 때문일 수 있습니다.

해결 방법

메시지 큐 레지스트리 값을 삭제하고 메시지 큐를 다시 설치하세요.

참고: 다음 절차를 수행하면 레지스트리에 저장된 이전 메시지 큐 항목이 삭제됩니다.

이러한 절차를 수행하려면 관리자 그룹의 구성원이거나 위임받은 적절한 권한이 있어야 합니다.

레지스트리 값 삭제

레지스트리 값을 삭제하려면:

주의: 레지스트리를 잘못 편집하면 시스템이 심각하게 손상될 수 있습니다. 레지스트리를 변경하기 전에 중요한 데이터를 모두 백업해야 합니다.

레지스트리 편집기를 엽니다. 레지스트리 편집기를 열려면 [시작]을 클릭합니다. [실행]을 클릭합니다. 열린 상자에 regedit를 입력하고 <Enter> 키를 누릅니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSMQ로 이동합니다.

MSMQ 키 아래에서 모든 레지스트리 키를 삭제합니다.

메시지 큐를 제거하고 다시 설치(Windows XP)

Windows XP에서 메시지 큐를 제거하고 다시 설치하려면:

왼쪽 창에서 Windows 기능 사용/사용 안 함을 클릭합니다.

[MSMQ(Microsoft Message Queue) 서버] 확인란의 선택을 취소하고 [제거]를 클릭합니다.

1단계와 2단계를 반복합니다.

Windows 기능 사용/사용 안 함 섹션에서 설치하고자 하는 메시지 큐 구성 요소를 선택합니다.

메시지 큐를 제거하고 다시 설치(Windows Server 2016 이상)

Windows Server 2016 이상에서 메시지 큐를 제거하고 다시 설치하려면:

서버 관리자를 엽니다. 서버 관리자를 열려면 시작을 클릭하고 관리 도구를 가리킨 다음 서버 관리자를 클릭합니다.

콘솔 트리에서 기능을 클릭합니다.

세부 정보 창의 기능 요약 섹션에서 기능 제거를 클릭합니다.

[기능 제거 마법사]에서 [메시지 큐] 확인란의 선택을 취소하고 [제거]를 클릭합니다.

메시지 큐를 제거한 후 서버 관리자에서 기능 추가를 클릭합니다.

기능 추가 마법사에서 설치하고자 하는 메시지 큐 구성 요소를 선택하고 설치를 클릭합니다.

Element properties:

TargetMicrosoft.MSMQ.10.0.Servers
CategoryAvailabilityHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
레지스트리 값이 잘못되어 Message Queuing 서비스를 시작할 수 없습니다.
{0}
Event LogApplication

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.MSMQ.10.0.Rule.Alert.Event2000" Enabled="false" Target="Microsoft.MSMQ.10.0.Servers" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>AvailabilityHealth</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventSourceName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="Microsoft.MSMQ.10.0.ServerRole"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>2000</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.MSMQ.10.0.Rule.Alert.Event2000.AlertName"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/EventDisplayNumber$</SuppressionValue>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>