无法启动MS DTC 事务管理器--解决方案

来源:互联网 发布:shopex1000 源码 编辑:程序博客网 时间:2024/05/24 02:46

无法启动 MS DTC 事务管理器--解决方案
事件类型:错误
事件来源:MSDTC
事件类别:SVC
事件ID:4112

事件描述:无法启动 MS DTC 事务管理器。

----------------------------------------------------------

事件类型:错误
事件来源:Service Control Manager
事件类别:无
事件ID:7024

事件描述:Distributed Transaction Coordinator 服务因 3221229584 (0xC0001010) 服务性错误而停止。

----------------------------------------------------------

问题解决:

删除关联的注册表项及重新安装msdtc组件

*.bat

@echo off
setlocal
@echo %WINDIR%\System32\msdtc.exe -uninstall
%WINDIR%\System32\msdtc.exe -uninstall
call :delkey "HKCR\CID"
call :delkey "HKLM\SYSTEM\CurrentControlSet\Services\MSDTC"
call :delkey "HKLM\SYSTEM\ControlSet001\Services\MSDTC"
call :delkey "HKLM\SYSTEM\ControlSet002\Services\MSDTC"
call :delkey "HKLM\Software\Microsoft\MSDTC"
@echo %WINDIR%\System32\msdtc.exe -install
%WINDIR%\System32\msdtc.exe -install
endlocal
goto :EOF
:delkey
set key=%1
call :delkeyq %key% >nul 2>&1
@echo.
goto :EOF
:delkeyq
REG DELETE %key% /F


运行完,看看日志

已成功安装 Microsoft Distributed Transaction Coordinator 服务。

____________________________________________________

还有一手工的方法。

原因
因为 MSDTC 服务无法访问 %windir%\System32\Msdtc\Msdtc.log 文件发生此问题。

解决方案
要解决此问题, 根据需要按它们在其中显示顺序使用下列方法。
方法 1: 重新创建 MSDTC 日志
重新创建 MSDTC 日志, 并重新启动服务。 要这样做, 请按照下列步骤操作: 1. 单击 开始 , 单击 运行 , 类型 cmd然后单击 确定 。
2. 在命令提示符, 键入以下命令, 然后按 ENTER 键: msdtc -resetlog 如果使用不当 警告 MSDTC - resetlog 命令可能导致数据损坏。确保您运行此命令时,执行不具有任何挂起事务。
3. 键入下列命令, 然后按 ENTER 键: net start msdtc

MSDTC 服务帐户权限设置登录方法 2:
如果方法 1 不能解决问题, 设置登录帐户对 MSDTC 服务来具有读取和写入权限 Msdtc.log 文件。要这样做, 请按照下列步骤操作: 1. 单击 开始 ,单击 运行 , 类型 cmd然后单击 确定 。
2. 在命令提示符处, 键入 control admintools然后按 Enter。
3. 双击 服务 。
4. 在 服务 窗格, 找到 DistributedTransactionCoordinator 。
5. 列, 登录为 " 中注意帐户名称。

注意 : 默认登录帐户 MSDTC 服务是 NETWORKSERVICE 帐户。
6. 启动 Windows Explorer, 并再打开 %windir%\System32\Msdtc 文件夹。
7. 右击, Msdtc.log 文件, 然后单击 属性 。
8. 单击 安全 选项卡。
9. 单击登录帐户名称, 在步骤 5 中记录。 例如, 单击 NETWORKSERVICE 帐户名称。
10. 在 权限 窗格中, 单击以选中 允许复选框对于下列权限: ? 读取和执行
? 读取
? 写入