发博文
你快乐,我快乐

http://blog.chinaunix.net/space.php?uid=770846

快乐,竞争,冷静,学习,努力,危机,友好   
个人资料
  • 博客访问:37401
  • 博文数量:11
  • 博客积分:1410
  • 博客等级:上尉
  • 注册时间:2006-04-26 18:56:13
订阅我的博客
  • 订阅
  • 订阅到鲜果
  • 订阅到抓虾
  • 订阅到Google
字体大小: 博文
分类: SQLServer

存在防火墙时MSDTC的运行配置

Article ID

:

250367

Last Review

:

August 26, 2002

Revision

:

1.0

重要:本文包含修改注册表信息内容。在你修改注册表之前请确定你已经做好备份,并且你已经知道在出现问题时如何恢复注册表。关于如何备份、恢复和修改注册表的信息请单击下面的号码查看微软知识库内文章:

256986 微软Windows注册表概述

概要

本文描述了如何配置MSDTC,使之在防火墙下正常工作。

 

 

更多信息

你可以配置DTC通过防火墙通信,包括网络IP地址转换的防火墙。


DTC
使用远程调用(RPC)动态端口分配。缺省情况下,RPC动态端口分配随机使用大于1024的端口。通过修改注册表,你可以控制哪些端口给RPC作为输入通信动态分配。随后你可以配置防火墙只允许你指定的端口和135端口(RPC端口)和外部通信。


你必须为DTC提供一个入口动态端口。你可以需要额外再提供一些端口给那些依赖RPC的子系统。

 

本文提到的注册表主键和值可能在注册表中没有,如果没有的话你需要在注册表中手动加入这些注册表主键以及主键值。

警告:如果你改错了注册表,可能会发生严重问题甚至导致需要重新安装你的操作系统。微软公司不保证你能够解决由于错误地修改了注册表而导致的结果。

 

依照一下步骤来控制RPC动态端口分配,你必须同时在计算机上操作。同时需要注意的是防火墙必须为指定端口的出入双向开放。

1.

单击“开始”,单击“运行”,键入“regedt32,然后单击“OK”运行注册表编辑器。

 

你最好使用Regedt32.exe(或者Regedit.exe),因为Regedit.exe不支持端口值需要的数据类型:REG_MULTI_SZ

2.

注册表编辑器中,我的电脑节点下单击HKEY_LOCAL_MACHINE

3.

双击注册表目录,展开以下注册表路径:

HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc

4.

单击RPC目录,在“编辑”菜单中选择“新建”à“项”。

5.

在新建项的对话框中输入“Internet”(译者注:Windows XP以上版本直接在树结构中输入项名称“Internet”回车即可)后单击“确定”。

6.

单击“Internet”目录,在“编辑”菜单中选择“新建”à“值”(译者注:Windows XP以上版本请选择“多字符串值”)。

7.

在增加值对话框内,输入“Ports”(译者注:Windows XP以上版本直接在列表编辑框内输入“Ports”)。

8.

在值类型框内选择“REG_MULTI_SZ”,单击“确定”。(译者注:Windows XP以上版本不需要此步骤)

9.

双击新建的“Ports”,在对话框内输入你要为RPC指定使用的动态分配的端口号,然后单击“确定”。

 

每一个字符串值可以指定一个端口或者一个端口范围。比如说,要指定端口5000,那么输入5000,要指定端口范围50005020,那么输入5000-5020。你可以通过输入多行来指定多个端口或者多个端口范围。所有你指定的端口都必须在102465535范围之内,如果超出这个范围或者字符串不是端口,那么RPC将会把整个设置都视为无效。


微软公司建议你打开5000以上的端口,并至少打开1520个端口。

10.

重复以上步骤69Internet项内再增加一个值:

键值名称:PortsInternetAvailable

值类型:REG_SZ

值数据:Y

This signifies that the ports listed under the Ports value are to be made Internet-available.

这个键值表示前面所列的端口在Internet通信时可用。

11.

再重复以上步骤69Internet项内再增加一个值:

键值名称:UseInternetPorts

值类型:REG_SZ

值数据:Y

 

这个键值表示RPC应该使用前面所列的端口来动态分配。

12.

配置你的防火墙,打开入口端口135RPC使用)和前面所列的所有端口。

13.

重新启动计算机,当RPC启动时,它会根据注册表内注册键值的端口来动态分配使用。例如,要RPC使用端口50005020,那么创建以下注册表键值:

PortsREG_MULTI_SZ5000-5020

PortsInternetAvailable : REG_SZ : Y
UseInternetPorts : REG_SZ : Y

 

DTC同时需要你能够通过NetBIOS或者DNS来解析计算机名。你可以通过Ping命令来看是否能够解析计算机名。客户机必须能够通过计算机名来访问服务器,并且服务器同样能够通过计算机名来访问客户机。如果NetBIOS不能解析计算机名,那么你可以在计算机中lmhosts文件内加入计算机名和IP地址。

关于本主题更多信息请在微软知识库中查看以下号码的文章内容。

217351 (http://support.microsoft.com/kb/217351/EN-US/) PRBDCOM 配置端口范围问题

关于lmhosts文件更多信息,请查看微软知识库以下号码的文章。

102725 (http://support.microsoft.com/kb/102725/EN-US/) lmHost 文件信息与预定义关键字

 

参考

更多的在防火墙下使用DCOMRPC的信息,可以参考由Michael Nelson著的白皮书“ (http://www.microsoft.com/com/wpaper/dcomfw.asp)Using Distributed COM with Firewalls”,以下连接可以提供该问:

http://www.microsoft.com/com/wpaper/dcomfw.asp

我的更多文章
[发评论] 评论 重要提示:警惕虚假中奖信息!
  • chinaunix网友 2006-07-02 16:58
    想了解更多有趣登录信息,请访问: http://www.deng6.com 他将购物价格比、乐趣人性化展现在我们的面前。 欢迎广大朋友支持,以后我会推出更多的有趣信息,请大家关注!!!
亲,您还没有登录,请[登录][注册]后再进行评论