用户管理提示 新事务不能登记到指定的事务服务器  
Windows 2003 环境下安装使用 K/3 中间层,在使用用户管理功能时,可能会出现以下错误提示,一般可以从以下几个方面分析,解决。


1.
组件注册问题
Windows 2003 中, K/3 中间层的组件注册会有两个不正常,在组件管理中不能显示组件名称,而是一长字符串:
8005BBB8-E3B0-11D5-9FA1-00E04C54B3B6
组件名称应为: KdSvrMgr.clsAct
F004846C-E7A2-11D5-9FAB-00E04C54B3B6
组件名称应为: TransXmlLib.clsXml
由于这两个 COM+ 组件不能正确地解析名称,在使用中,第一个会引发上面的用户管理问题,第二个会引起注册组件不能通过的问题。
目前我们通过手工修改注册表来解决这个问题,以 K/3V10.0 为例(对于其他版本都需要通过查看组件的 VBR 文件确定这里的组件 UUID ),将下面的内容用记事本保存成 .reg 文件,然后双击执行添加到注册表中即可。


Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\AppID\{8005BBB8-E3B0-11D5-9FA1-00E04C54B3B6}]
"RunAs"="Interactive User"
@="KdSvrMgr.clsAct"

[HKEY_CLASSES_ROOT\AppID\KdSvrMgr.exe]
"AppId"="{8005BBB8-E3B0-11D5-9FA1-00E04C54B3B6}"

[HKEY_CLASSES_ROOT\AppID\{F004846C-E7A2-11D5-9FAB-00E04C54B3B6}]
@="TransXmlLib.clsXml"
"AuthenticationLevel"=dword:00000000
"RunAs"="Interactive User"

[HKEY_CLASSES_ROOT\AppID\transxmllib.exe]
"AppId"="{F004846C-E7A2-11D5-9FAB-00E04C54B3B6}"

2. IP
地址解析问题
另外一种原因就是中间层、客户端不能按照数据库服务器的 IP 地址解析机器名。
解决方法是在中间层、客户端、数据库双方的 hosts 文件中分别加入其他两个机器的 IP 地址和机器名,另外更加保险的做法是在各自的 TCP/IP 协议的 Wins 中加入其他两个机器的 IP 地址。

3.
设置问题
对于 Windows 2003 SP1 ,需要设置组件服务的属性中的 安全配置 事务管理器 通信卫 不要求进行验证 ,系统默认值是 要求对方进行验证