MSDTC 失败进行相互身份验证时计算机不在同一个域中运行

文章翻译 文章翻译
文章编号: 827805 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

症状

当两台计算机运行不在同一个域中进行通信以及分布式事务,请使用 Microsoft 分布式事务协调器 (MSDTC) 时,相互身份验证可能会失败。

当您在运行 Microsoft Windows Server 2003 企业版的计算机上对 Microsoft SQL Server 2000 中的链接服务器运行分布式的事务时您可能会收到以下错误消息:
服务器: 消息 7391,级别 16,1,状态行 2
无法执行该操作,因为 OLE DB 提供程序 'SQLOLEDB 无法启动分布式的事务。OLE/DB 提供程序返回消息: 新的事务无法登记在指定的事务处理协调器。

原因

MSDTC 代理可能不正确 MSDTC 时验证通信的计算机不在同一个域中。

替代方法

重要此分区、 方法,或任务包含告诉您如何修改注册表的步骤。但是,如果注册表修改不当可能会出现严重问题。因此,请确保您仔细按照这些步骤。附加的保护注册表之前先备份您对其进行修改。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322756如何备份和还原在 Windows 注册表


有关如何编辑注册表的信息查看注册表编辑器 (Regedit.exe) 或 Regedt32.exe 中的在注册表中添加和删除信息"和编辑注册表数据帮助主题中的"更改项和值"帮助主题。Microsoft 建议您对其进行编辑之前备份注册表。

若要变通解决此问题,请关闭 RPC Windows Server 2003 计算机上的安全。RPC 安全机制是一个新的 DTC 在 Windows Server 2003 中的功能。当您禁用 DTC 上的 RPC 安全机制会返回 RPC 调用的身份验证的安全级别到 Microsoft Windows 2000 Server 中可用的级别。要这样做请按照以下步骤来设置为 1 的 DWORD 值为 TurnOffRpcSecurity 注册表值:
  1. 启动注册表编辑器 (Regedt32.exe)。
  2. 在注册表中找到以下项:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
  3. 编辑 菜单上单击 添加值,然后添加以下注册表值:
    收起该表格展开该表格
    值名称数据类型
    TurnOffRpcSecurityREG_DWORD1
  4. 退出注册表编辑器。
注意 在安装 Windows Server 2003 Service Pack 1 后,该注册表项 TurnOffRpcSecurity 设置为 0。您必须重新启动计算机之前,请使用注册表编辑器来恢复为 1 的值。

状态

此行为是设计使然。

更多信息

重现行为的步骤

  1. 请确保两台计算机都运行 Windows Server 2003。
  2. 这两台计算机上安装 Service Pack 3 (SP3) 与 SQL Server 2000。
  3. 请确保已在两台计算机上启动 MSDTC。
  4. 在第一台计算机上启动 SQL 查询分析器 (Isqlw.exe) 实用工具,然后连接到本地 SQL Server。
  5. 将第二台计算机添加为链接服务器。这样做在 SQL 查询分析器中运行下面的 TRANSACT-SQL 语句:
    EXEC sp_addlinkedserver  'remote_server',  N'SQL SERVER'
    GO
    注释 替换 remote_server,第二台计算机的名称。
  6. 在 SQL 查询分析器中运行下面的 TRANSACT-SQL 语句:
    SET xact_abort ON 
    GO
    USE  pubs
    GO
    BEGIN DISTRIBUTED TRANSACTION
    SELECT  *  FROM remote_server.pubs.dbo.authors
    COMMIT TRAN
    GO
    
    您可能会收到"症状"中提到的错误消息的这篇文章部分。
有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
329332您会收到错误 7391 时对链接服务器运行分布式的事务
有关 Microsoft COM + 1.5 的详细信息,请访问下面的 Microsoft 开发人员网络 (MSDN) 的网站:
http://msdn2.microsoft.com/en-us/library/ms687608.aspx

属性

文章编号: 827805 - 最后修改: 2007年12月5日 - 修订: 4.7
这篇文章中的信息适用于:
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft COM+ 1.5
关键字:?
kbmt kbinfo kbtshoot kbtransaction kbsecurity kbrpc kbauthentication kbdtc kbdomain KB827805 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 827805
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com