이 오류는 다음과 같은 경우에 발생할 수 있습니다.
서비스를 다시 시작해야 합니다.
필요한 파일이 Windows 디렉터리의 System32 폴더에 없습니다.
MSDTC 다시 시작
MSDTC(Microsoft Distributed Transaction Coordinator) 서비스를 다시 시작해야 할 수 있습니다. MSDTC를 중지했다가 다시 시작하려면:
시작을 클릭한 다음 명령 프롬프트를 클릭합니다.
명령 프롬프트에서 net stop msdtc를 입력하고 Enter 키를 누릅니다.
명령 프롬프트에서 net start msdtc를 입력하고 Enter 키를 누릅니다.
필요한 파일이 System32 폴더에 있는지 확인하십시오.
이 절차를 수행하려면 Administrators 그룹의 구성원이거나 적절한 권한을 위임 받아야 합니다.
필요한 파일 Msdtcprx.dll이 System32 폴더에 있는지 확인하려면:
시작을 마우스 오른쪽 단추로 클릭한 다음 탐색을 클릭합니다.
Windows 폴더로 이동합니다. 세부 정보 창에서 System32를 두 번 클릭합니다.
검색 상자에 msdtcprx.dll을 입력합니다. 파일이 있으면 세부 정보 창에 표시됩니다. 파일이 없으면 아래에 나오는 단계를 수행하십시오.
필요한 파일 Msdtcprx.dll이 System32 폴더에 있는지 확인하려면:
시작을 마우스 오른쪽 단추로 클릭한 다음 탐색을 클릭합니다.
Windows 폴더로 이동합니다. 세부 정보 창에서 System32를 두 번 클릭합니다.
검색 상자에 msdtcprx.dll을 입력합니다. 파일이 있으면 세부 정보 창에 표시됩니다.
MSDTC(Microsoft Distributed Transaction Coordinator) 서비스를 중지했다가 다시 시작하십시오.
MSDTC를 중지했다가 다시 시작하려면:
시작을 클릭한 다음 명령 프롬프트를 클릭합니다.
명령 프롬프트에서 net stop msdtc를 입력하고 Enter 키를 누릅니다.
명령 프롬프트에서 net start msdtc를 입력하고 Enter 키를 누릅니다.
MSDTC 추적 디렉터리가 있는지 여부와 디렉터리의 사용 권한을 확인하십시오.
추적 디렉터리가 손상되었거나 추적 디렉터리의 사용 권한이 변경되었을 수 있습니다. 추적 디렉터리가 있는지 여부와 디렉터리의 사용 권한이 올바른지 확인하려면 다음을 수행하십시오.
MS DTC(Microsoft Distributed Transaction Coordinator)가 Windows/System32/Msdtc 폴더에서 추적 디렉터리를 찾을 수 없습니다. 디렉터리가 없거나 액세스 권한이 올바르게 설정되지 않았을 수 있습니다.
추적 디렉터리가 없으면 만드십시오. 추적 디렉터리가 있으면 디렉터리의 액세스 권한이 모든 권한으로 설정되어 있는지 확인하십시오. 디렉터리의 사용 권한을 확인하려면 MSDTC(Microsoft Distributed Transaction Coordinator) 서비스가 실행되는 로그온 계정을 확인하십시오. MSDTC가 실행되는 계정이 사용 권한 목록에 나타나지 않으면 계정을 사용자로 추가하십시오.
이 절차를 수행하려면 Administrators 그룹의 구성원이거나 적절한 권한을 위임 받아야 합니다.
추적 디렉터리가 있는지 확인
추적 디렉터리가 있는지 확인하려면:
시작을 마우스 오른쪽 단추로 클릭한 다음 탐색을 클릭합니다.
Windows, System32, Msdtc를 차례로 확장하고 추적 디렉터리를 찾습니다. 추적 디렉터리가 없으면 만드십시오.
추적 디렉터리가 없으면 만드십시오.
추적 디렉터리를 만들려면
Msdtc 폴더를 선택합니다. 파일 메뉴에서 새로 만들기를 가리킨 다음 폴더를 클릭합니다.
폴더 이름 영역에 추적을 입력합니다.
MSDTC가 실행되는 로그온 계정 확인
MSDTC가 실행되는 로그온 계정을 확인하려면:
시작을 클릭한 다음 실행을 클릭합니다.
services.msc를 입력하고 확인을 클릭합니다. 사용자 계정 컨트롤 대화 상자가 나타나면 표시되는 작업이 원하는 작업인지 확인한 다음 계속을 클릭합니다.
서비스 목록에서 Distributed Transaction Coordinator를 찾아서 선택합니다.
Distributed Transaction Coordinator 서비스를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.
로그온 탭을 클릭하고 계정 지정 상자의 계정을 기록해 둡니다. 이 계정이 MSDTC가 실행되는 계정입니다(예: 네트워크 서비스).
다음 절차에서 해당 계정을 사용 권한이 있는 사용자 목록에 추가해야 할 수도 있으므로 계정 이름을 대소문자를 구분하여 정확하게 기록해 두어야 합니다.
추적 디렉터리의 액세스 권한 확인
추적 디렉터리의 액세스 권한을 확인하려면:
시작을 마우스 오른쪽 단추로 클릭한 다음 탐색을 클릭합니다.
Windows, System32, Msdtc를 차례로 확장하고 추적 디렉터리를 찾아서 선택합니다.
추적 디렉터리를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.
보안 탭을 클릭하고 고급을 클릭합니다.
사용 권한 목록에서 MSDTC가 실행되는 계정을 찾은 다음 사용 권한 수준이 모든 권한인지 확인합니다.
MSDTC가 실행되는 계정이 사용 권한 목록에 나타나지 않으면 계정을 사용자로 추가하십시오.
모든 권한이 있는 사용자로 계정 추가
모든 권한이 있는 사용자로 계정을 추가하려면:
시작을 마우스 오른쪽 단추로 클릭한 다음 탐색을 클릭합니다.
Windows, System32, Msdtc를 차례로 확장하고 추적 디렉터리를 찾아서 선택합니다.
추적 디렉터리를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.
특성에서 읽기 전용 확인란의 선택을 취소합니다.
보안 탭을 클릭하고 편집을 클릭합니다.
추가를 클릭합니다. Windows 보안 대화 상자가 나타나면 도메인 자격 증명을 입력하고 확인을 클릭합니다.
사용자, 컴퓨터 또는 그룹 선택 대화 상자에서 개체 유형을 클릭하고 사용자 확인란을 선택합니다.
선택할 개체 이름을 입력하십시오. 상자에 MSDTC가 실행되는 계정의 이름을 입력한 다음 확인을 클릭합니다.
보안 탭의 권한 영역에서 모든 권한 옆의 허용 확인란을 선택한 다음 확인을 클릭합니다.
Windows 보안 대화 상자가 나타나면 예를 클릭한 다음 확인을 클릭합니다.
Target | Microsoft.MSDTC.6.3.Servers | ||
Category | EventCollection | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Remotable | True | ||
Alert Message |
| ||
Event Log | Application |
ID | Module Type | TypeId | RunAs |
---|---|---|---|
DS | DataSource | Microsoft.Windows.EventProvider | Default |
Alert | WriteAction | System.Health.GenerateAlert | Default |
WriteToDB | WriteAction | Microsoft.SystemCenter.CollectEvent | Default |
WriteToDW | WriteAction | Microsoft.SystemCenter.DataWarehouse.PublishEventData | Default |
<Rule ID="Microsoft.MSDTC.6.3.Eventcollection.4424.4228" Enabled="onStandardMonitoring" Target="Microsoft.MSDTC.6.3.Servers" ConfirmDelivery="true" Remotable="true" Priority="Normal" DiscardLevel="100">
<Category>EventCollection</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>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^(4424|4228)$</Pattern>
</RegExExpression>
</Expression>
<Expression>
<RegExExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>MatchesRegularExpression</Operator>
<Pattern>^(Microsoft-Windows-MSDTC|Microsoft-Windows-MSDTC Client)$</Pattern>
</RegExExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="Alert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertName/>
<AlertDescription/>
<AlertOwner/>
<AlertMessageId>$MPElement[Name="Microsoft.MSDTC.6.3.Eventcollection.4424.4228.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue>$Data/LoggingComputer$</SuppressionValue>
</Suppression>
<Custom1/>
<Custom2/>
<Custom3/>
<Custom4/>
<Custom5/>
<Custom6/>
<Custom7/>
<Custom8/>
<Custom9/>
<Custom10/>
</WriteAction>
<WriteAction ID="WriteToDB" TypeID="SC!Microsoft.SystemCenter.CollectEvent"/>
<WriteAction ID="WriteToDW" TypeID="SCDW!Microsoft.SystemCenter.DataWarehouse.PublishEventData"/>
</WriteActions>
</Rule>