jianxy

导航

MSDTC 疑难解答

疑难解答步骤

重要 此部分、 方法,或任务包含告诉您如何修改注册表的步骤。 但是,如果错误地修改注册表,就可能发生严重的问题。 因此,请确保认真执行这些步骤。 添加的保护注册表之前先备份您修改它。 然后,发生问题时可以还原注册表。 有关如何备份和还原在注册表的详细信息,单击下面的文章编号,以查看 Microsoft 知识库中相应:
322756  (http://support.microsoft.com/kb/322756/ ) 如何备份和还原在 Windows 注册表
  1. 验证 MS DTC 服务启动这两个服务器上。
  2. 如果您的服务器运行 Windows NT 4.0,您必须在安装 Windows NT 4.0 Option Pack (NTOP) 后重新应用 Windows NT 4.0 Service Pack 6 (SP 6)。 检查文件版本以验证 Windows NT 4.0 Option Pack 安装后已被重新应用 Windows NT 4.0 SP 6 下表中列出的:
    收起该表格展开该表格
    文件名称 安装后的版本 NTOP 之后您重新安装 SP 6 的版本
    Msdtcprx.dll 1997.11.532 1999.6.854.0
    Msdtctm.dll 1997.11.532 1999.6.854.0
    Xolehlp.dll 1997.11.532 1998.08.762
    有关 Windows NT 4.0 Option Pack 安装,请参阅下面的 Microsoft 白皮书:
    IIS 4.0 推荐安装过程
    http://support.microsoft.com/?scid=http%3a%2f%2fsupport.microsoft.com%2fsupport%2fiis%2finstall%2finstall_iis4.asp (http://support.microsoft.com/?scid=http%3a%2f%2fsupport.microsoft.com%2fsupport%2fiis%2finstall%2finstall_iis4.asp)
  3. 请配置两个服务器,以便防火墙之间流动的 MS DTC 通信。 请控制 RPC 动态端口分配中执行这些步骤。

    请注意 您必须在两台计算机上执行这些步骤。

    请注意 防火墙必须在指定的端口的两个方向的打开。
    1. 若要启动注册表编辑器单击 开始 ,单击 运行 ,键入 regedt 32 ,然后单击 确定

      您必须使用 Regedt 32.exe 文件而不是 Regedit.exe 文件。 Regedit.exe 文件不支持该 REG _ MULTI _ SZ 数据类型所需的端口值。
    2. 在注册表编辑器展开下面的项:
      HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
    3. 单击 RPC 文件夹,然后单击 编辑 菜单上的 添加项
    4. 添加项 对话框在 项名称 框中中, 键入 Internet ,然后单击 确定
    5. 单击 Internet 文件夹,然后单击 编辑 菜单上的 添加值
    6. 添加值 的对话框键入在 数值名称 框中的 端口
    7. 在该 数据类型 框选择 REG _ MULTI _ SZ ,然后单击 确定
    8. 多字符串编辑器 对话框指定端口或所需 RPC 以使用在 数据 框中的动态端口分配的端口,以及然后单击 确定

      在键入每个字符串值指定单个端口或的包含范围的端口。 是例如要打开端口 5000,可以指定"5000。 若要打开端口 5000 到 5020 包含端口指定"5000-5020"。 可以通过指定一个端口或端口范围,每行指定多个端口或端口范围。 所有端口都必须在 1024 到 65535 这个范围。 如果任何端口是超出此范围,或者,如果任何字符串无效,RPC 都会在整个配置视为无效。

      我们建议您打开端口 5000 和更高版本,并打开至少为 15 到 20 端口。
    9. 请执行步骤 e 到要添加另一项的步骤 h。 使用下列值:
      • 值: PortsInternetAvailable
      • 数据类型: REG _ SZ
      • 数据: Y
      这表示所的端口值下列出的端口已进行 Internet 可用。
    10. 配置防火墙以允许对指定的动态端口和端口 135 (RPC 终结点映射程序端口) 的传入访问。
    11. 重新启动计算机。 RPC 重新启动后,分配传入端口动态,根据您指定的注册表值。 是例如打开端口 5000 到 5020 包含,创建下列命名值:
      • 端口: REG_MULTI-SZ: 5000 5020
      • PortsInternetAvailable: REG _ SZ: Y
      • UseInternetPorts: REG _ SZ: Y
    DTC 还要求您可以通过使用 NetBIOS 或 DNS 解析计算机名称。 您可以测试是否能够解析的 NetBIOS 使用 PING 协议名称和服务器名称。 客户端计算机必须能够解析服务器的名称。 此外,服务器必须能够解析客户端的名称。 如果 NetBIOS 无法解析名称,可以在计算机上的 Lmhosts 文件来添加项。 有关如何配置 Windows 2000 上的 TCP 端口的详细信息,单击下面的文章编号,以查看 Microsoft 知识库中的文章:
    300083  (http://support.microsoft.com/kb/300083/ ) 如何限制 Windows 2000 和 Windows XP 上的 TCP/IP 端口
  4. 如果 MS DTC 仍不能通过防火墙,请下载该 DTCPing.exe 工具,并安装涉及两个服务器上的此工具。从 Microsoft 下载中心下载下列文件有:
    收起这个图片展开这个图片
    http://download.microsoft.com/download/
    Download DTCPing.exe now (http://download.microsoft.com/download/d/0/0/d00c8f6b-135d-4441-a97b-9de16a1935c1/dtcping.exe)
    DTCPing.exe 文件包含下列文件:
       Date         Time   Version  Size     Filename
       ----------------------------------------------------------
       29-Oct-2003  22:56  1.8.0.1  274,490  Dtcping.exe
       15-Dec-2003  22:05             1,618  Eula.txt
       24-Nov-2003  20:59             1,560  Machinea_failure.log
       24-Nov-2003  20:21             1,901  Machinea_success.log
       24-Nov-2003  20:55               999  Machineb_failure.log
       24-Nov-2003  20:31             1,750  Machineb_success.log
       24-Nov-2003  20:15             2,325  Readme.txt
    发布日期: 2003 年 11 月 24 日

    有关如何下载 Microsoft 支持文件的详细信息,单击下面的文章编号,以查看 Microsoft 知识库中的文章:
    119591  (http://support.microsoft.com/kb/119591/ ) 如何从联机服务获取 Microsoft 支持文件
    Microsoft 扫描病毒此文件。 Microsoft 使用最新的病毒检测软件在发布该文件的日期中获得的。 该文件存储在安全性得到增强防止任何未经授权的更改对文件的服务器上。
  5. 使用该 DTCPing.exe 中包含的 Readme.txt 文件下载到测试远程过程调用 (RPC) 和来自 Server 1 到 Server 2 的分布式事务处理协调器 (DTC) 通信。 成功此测试是否运行 Server 2 中测试为 Server 1。

    请注意是否 RPC 无法任意方向中排列的 MS DTC 通信失败在两个方向。 如果将失败 RPC 通信 DTCPing 窗口 (服务器) 将显示此错误也保存在关联的 dtcping.log 文件的。 请参阅有关 Readme.txt 文件。 如果测试失败的方向,并且该日志指出故障是在 RPC 通信中,继续执行下一步。 如果测试失败的方向,并且该日志指出故障是在 DTC 通信中,继续步骤 9 下面。
  6. RPC 失败在至少一个方向 (是例如从 Server 1 到 Server 2),直接防火墙管理员,以确保的 Internet 控制消息协议 (ICMP) 打开在两个方向。

    请注意 您通常可以确定如果 RPC 通过阅读 dtcping.log 文件失败。

    默认,ICMP 为 port1。 您可以验证这 %windir%\WinNT\System32\Drivers\ 文件夹位于协议文件中。 按从 Server 1 的 NetBios 名称 Ping Server 2。 如果将失败 ping 操作继续下一步。 否则,继续步骤 8。
  7. 通过从 Server 1,以确保正确的端口是打开防火墙上的 ping 的 IP 地址 Ping Server 2。 网络监视器跟踪可以验证这。 如果 IP 地址 ping 成功,并且 NetBios 名称 ping 失败,则名称解析问题。

    请注意 您可以使用该 ipconfig / all 命令以检索 IP 地址或服务器的 IP 地址。

    测试名称解析的快速方法是使客户端服务器的 Hosts 文件中的条目。 这是依据该 NetBios 名称 ping 失败的服务器。 文件中包含的示例项后,可以模型输入。

    请注意 必须只进行故障排查 Hosts 文件中进行的条目。 如果新项可以解决名称解析问题,则从主机文件删除条目,并使在 DNS、 WINS 服务器或 LmHosts 文件中的项必须。

    名称解析问题的其他解决方案存在,但它们是超出了本文的范围。
  8. 如果将失败从 Server 1 按 NetBios 名称 ping Server 2 或者虽然从 Server 1 按 NetBios 名称 ping Server 2 成功但是 DTCPing 测试显示了 RPC 通信仍然失败,有可能端口 135 (终结点映射程序或 EPM) 尚未打开双向防火墙上。 请检查以确保 EPM 是在两个方向打开防火墙。 到目前为止网络监视器跟踪有助于查明问题。
  9. 如果 DTCPing 测试表明 RPC 只到达此步骤适用于两个方向的通信。 如果 DTCPing 指示没有错误,在任意方向,然后 RPC 和 MS DTC 通信流动正确。
  10. 如果 DTCPing 指示 DTC 通信已失败 (是例如从 Server 1 到 Server 2) 的至少一个方向,直接防火墙管理员以验证端口是否打开确保开发人员指定的开发人员通过 MS DTC 配置相应的运行时 (请参阅步骤 3)。 此外,一些规则可应用于禁止 RPC 的防火墙的 (或两个) 的服务器的回调。 网络监视器跟踪有助于解决此特定情形。
  11. 如果 DTCPing 返回错误消息类似于以下内容:
    异常: 我会话 GUID 是与合作伙伴的 GUID 相同
    检查当前的服务器是否都已被复制或从其他服务器复制。 如果是这样,请在注册表中找到 HKEY_CLASSES_ROOT\CID 项。 此项中您可能注意到多个 GUID。 找到的基本说明密钥越 MSDTC 的 GUID。 请注意 DTCPing 输出窗口中还列出了此 GUID。 如果其他服务器都具有完全相同的注册表中的 MS DTC 的 GUID,您必须为 MS DTC 注册表之一中创建新的 GUID。 可以使用 GuidGen 来这样做。

    将此新的 GUID 和还所有其基本密钥添加到 HKEY_CLASSES_ROOT\CID 后,请确保删除已替换的旧 GUID。

    如果此步骤可以解决问题,强烈建议您阅读以下文章以了解更多有关复制 (或"重像") 的计算机: 有关详细信息,单击下面的文章编号,以查看 Microsoft 知识库中的相应:
    162001  (http://support.microsoft.com/kb/162001/ ) 不磁盘复制安装的版本的 Windows

posted on 2009-07-26 00:48  jianxy  阅读(675)  评论(0)    收藏  举报