Microsoft 分布式事务处理协调器服务必须在 NT AUTHORITY\NetworkService Windows 帐户下运行

本文介绍 Microsoft 分布式事务处理协调器 (MSDTC) 必须在 Windows 中运行的 Windows 帐户。

重要

本文包含有关如何修改注册表的信息。 修改注册表之前,一定要先进行备份。 并且一定要知道在发生问题时如何还原注册表。 有关如何备份、还原和修改注册表的详细信息,请参阅: 高级用户的 Windows 注册表信息

原始产品版本:Windows Server 2012、Windows 8、Windows 7
原始 KB 编号: 903944

摘要

在所有 Windows 客户端和服务器操作系统上,可能需要重启 MSDTC 服务才能执行这些步骤。 若要重启 MSDTC 服务,请执行以下步骤:

  1. 对于Windows 8.1和Windows 8

    • 在“开始”屏幕中,从右侧向内轻扫以显示超级按钮,选择“ 搜索”,然后搜索 cmd。 (或者,如果使用键盘和鼠标,请在“开始”屏幕中键入 cmd 。) 在搜索结果中,长按或右键单击“命令提示符”,然后选择“ 以管理员身份运行”。

    对于 Windows 7 及更早版本

    • 按 Windows 徽标 键+R,在“运行”框中键入 cmd ,然后按 Enter。 右键单击 cmd,然后选择“ 以管理员身份运行”。
  2. 键入 net stop msdtc ,然后按 Enter 按钮。

  3. 键入 net start msdtc ,然后按 Enter 按钮。

  4. 打开组件服务 Microsoft 管理控制台 (MMC) 管理单元。 为此,请单击“ 开始”,然后单击“ 运行 类型 dcomcnfg.exe”,然后单击“ 确定”。

  5. 依次展开“组件服务”、“计算机”和“我的电脑”。

  6. 右键单击“我的电脑”,然后单击“属性”

  7. 单击“ MSDTC ”选项卡,然后单击“ 安全配置”。

  8. DCT 登录帐户中的帐户 更改为 NT AUTHORITY\NetworkService。 如果需要密码,请输入空白密码。

  9. 单击 “确定” 两次。

对于 Windows XP 和 Windows Server 2003

从 Windows XP 开始,然后在 Windows Server 2003 中继续,MSDTC 服务必须在 Windows 帐户下 NT AUTHORITY\NetworkService 运行。

如果将帐户更改为 NetworkService 帐户以外的帐户,则分布式事务会失败。 事务失败,因为 MSDTC 服务无法与事务涉及的其他方一起执行相互身份验证。 使用 MSDTC 服务的本地事务也可能失败。

注意

其他参与方可以是事务管理器、资源管理器或客户端。

在 Microsoft Windows NT 4.0 和 Microsoft Windows 2000 中,可以将默认 MSDTC 服务帐户更改为域帐户。 在对 XA 数据库(如 Oracle 数据库)执行 XA 恢复操作时,可以将帐户更改为执行Windows 身份验证。

但是,在 Windows Server 2003 和 Windows XP 中,无法更改帐户。 相反,必须向运行 MSDTC 服务的计算机上的 NetworkService 帐户授予执行 XA 恢复操作所需的权限和角色。

设置 XA 恢复操作的确切方法特定于每个 XA 数据库。 通常,你必须将运行 MSDTC 服务的计算机的计算机帐户添加到可以对 XA 数据库执行 XA 恢复操作的用户列表。 此外,由于 NetworkService 帐户是受限帐户,因此必须提供 NetworkService 帐户对 XA DLL 所在的文件夹的访问权限。

若要将运行 MSDTC 服务的帐户更改回 NetworkService 帐户,请执行以下步骤。

警告

如果使用注册表编辑器或使用其他方法错误地修改了注册表,则可能会发生严重问题。 这些问题可能需要重新安装操作系统。 Microsoft 不能保证可以解决这些问题。 修改注册表需要您自担风险。

  1. 依次单击“开始”、“运行”,键入 regedit,然后单击“确定”

  2. 找到并单击以下子项: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC

    如果存在以下条目,请转到步骤 6:

    • TurnOffRpcSecurity
    • AllowOnlySecureRpcCalls
    • FallbackToUnsecureRPCIfNecessary
  3. 创建条目 TurnOffRpcSecurity

    1. 在“编辑”菜单上,指向“新建”,然后单击“DWORD 值”
    2. 键入 “TurnOffRpcSecurity”,然后按 Enter。
  4. 创建条目 AllowOnlySecureRpcCalls

    1. 在“编辑”菜单上,指向“新建”,然后单击“DWORD 值”
    2. 键入 AllowOnlySecureRpcCalls,然后按 Enter。
  5. 创建条目 FallbackToUnsecureRPCIfNecessary

    1. 在“编辑”菜单上,指向“新建”,然后单击“DWORD 值”
    2. 键入 FallbackToUnsecureRPCIfNecessary,然后按 Enter。
  6. 设置条目的 TurnOffRpcSecurity DWORD 值:

    1. 右键单击“ TurnOffRpcSecurity”,然后单击“ 修改”。
    2. “编辑 DWORD 值 ”对话框中,键入值 1,然后单击“ 确定”。
  7. 设置条目的 AllowOnlySecureRpcCalls DWORD 值:

    1. 右键单击“ AllowOnlySecureRpcCalls”,然后单击“ 修改”。
    2. “编辑 DWORD 值 ”对话框中,键入值 0,然后单击“ 确定”。
  8. 设置条目的 FallbackToUnsecureRPCIfNecessary DWORD 值:

    1. 右键单击“ FallbackToUnsecureRPCIfNecessary”,然后单击“ 修改”。
    2. “编辑 DWORD 值 ”对话框中,键入值 0,然后单击“ 确定”。

更改注册表后,必须重启 MSDTC 服务。 若要重启 MSDTC 服务,请执行以下步骤:

  1. 单击 “开始”,单击“ 运行”,键入 cmd,然后单击“ 确定”。
  2. 键入 net stop msdtc ,然后按 Enter。
  3. 键入 net start msdtc ,然后按 Enter。
  4. 打开组件服务 Microsoft 管理控制台 (MMC) 管理单元。 为此,请单击“ 开始”,单击“ 运行”,键入 dcomcnfg.exe,然后单击“ 确定”。
  5. 依次展开“组件服务”、“计算机”和“我的电脑”。
  6. 右键单击“我的电脑”,然后单击“属性”
  7. 单击“ MSDTC ”选项卡,然后单击“ 安全配置”。
  8. DCT 登录帐户中的帐户 更改为 NT AUTHORITY\NetworkService。 如果需要密码,请输入空白密码。
  9. 单击 “确定” 两次。

References

第三方信息免责声明

本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 Microsoft 不对这些产品的性能或可靠性提供任何明示或暗示性担保。

适用对象

  • Windows Server 2012 R2 Datacenter
  • Windows Server 2012 R2 Standard
  • Windows Server 2012 R2 Essentials
  • Windows 8.1 企业版
  • Windows 8.1 专业版
  • Windows 8.1
  • Windows Server 2012 Datacenter
  • Windows Server 2012 Datacenter
  • Windows Server 2012 Standard
  • Windows Server 2012 Standard
  • Windows Server 2012 Essentials
  • Windows 8 企业版
  • Windows 8 专业版
  • Windows 8
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows 7 企业版
  • Windows 7 专业版
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Standard
  • Windows Server 2008 Enterprise
  • Windows Vista Enterprise
  • Windows Vista Business
  • Microsoft Windows Server 2003 Enterprise Edition (32 位 x86)
  • Microsoft Windows Server 2003 Standard Edition (32 位 x86)
  • Microsoft Windows Server 2003 Datacenter Edition (32 位 x86)
  • Microsoft Windows Server 2003 Web Edition
  • Microsoft Windows Server 2003 Standard x64 Edition
  • Microsoft Windows Server 2003 Enterprise x64 Edition
  • Microsoft Windows Server 2003 Datacenter x64 Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Professional x64 Edition