星期四, 一月 31, 2008

关于”RPC server is unavailable”的解决方案

转至其他论坛,希望对有类似问题的朋友提供帮助

Remote Procedure Call (RPC): 一种消息传递功能,允许分布式应用程序呼叫网络上不同计算机上的可用服务。在计算机的远程管理期间使用。远程过程调用也被称为 RPC。
在TD上经常会报出RPC失败或者连接不上的信息,出现这种情况的原因就是因为本地进程与远程服务之间的连接不畅。”The RPC server is unavailable”是TD使用中相当常见的问题,在这里做个总结,希望朋友们一起交流探讨一下。
The RPC server is unavailable.翻译过来就是”RPC(远程过程调用)服务不可行。”–可以这么理解,它指的是”权限不够”的意思。
导致此原因的可能性很多很多,以下是我总结的几点(其中包含其它网友提供的资料,这里向他们表示感谢),希望大家补充:

1. RPC服务未启动。解决:控制面板-管理工具-服务-”Remote Procedure Call(RPC)”,启动一下(自动),服务状态”启动”;

2.服务器端IIS没装。解决:安装IIS。以2000系统为例,控制面板-添加删除程序-添加删除windows组件-”Internet 信息服务(IIS)”打一下勾,下一步……

3.你的系统没有打过补丁。如果你的系统是win2000,那么最好是打上sp3或者sp4补丁。根据个人猜测:如果你的TD的补丁是sp4,那么 最好你的2000系统也打上sp4补丁(注意:别搞错了!一个是操作系统的补丁,一个是TD的补丁)。解决:安装系统补丁–去微软网站上down吧,伙计 ^_^

4.TD服务未启动。此种情况比较复杂,需要尝试不同的解决方案,先到TD所在的那台机器上,点右键的testdirector checker,看看出错提示,对症下药。
以下几种可以结合起来尝试(反正你都登不上了,不如死马当作活马医,您说对不):
①清空IE的cookies、History、缓存;删掉TD_76目录,重新下载一次插件;
②进入TD后,点add-ins page;进入后点TestDirector Connectivity ;然后点download add-in;手动下载插件安装;
③启动一下TD。到TD所在的那台电脑上,在系统栏右边有个小图标,鼠标移上去,点右键”Start TestDirector”;
④TD补丁没打,可以试安装TD sp4;
⑤密码被改了,请询问管理员;
⑥TD服务器装了多个版本的TD,兼容性问题;请卸载其中一个版本,重装TD;
⑦把 http://IP/tdbin/start_a.htm 改为 http://计算机名/tdbin/start_a.htm 试试;
⑧如果TD被移植过,到TD所在的那台机器上,点右键的CHANGE RUNAS,更改一下账号;
⑨TD数据库文件毁坏(文件都搁屁了,还混啥?),和管理员沟通一下吧;
⑩TD服务器的那台机器有问题。或许是中毒了,或许是操作系统问题(可能系统内存泄露导致服务器崩溃,可能是注册表问题,可能是其它问题……),或许是硬盘坏道问题–这几种情况的共性是有时有问题,有时又没问题,莫名其妙的。
在尝试了上述几种方案恢复均告失败后,这个情况的可能性大之又大,千万别忽略了,还真有人就遇到过这种情况。
重装TD的那台机子的系统或者干脆把TD转移到另一台机器上试试。

TestDirector 项目移植

1. 说明

TD 服务程序支持的数据库有ACCESS、SQL SERVER、SYBASE、ORACLE 。ACCESS数据库的迁移是最简单的,其他数据库的移植过程都很相似,这里主要讨论SQLSERVER 数据库的移植。

2. 移植前的备份工作

移植前,首先要做好数据的备份工作。备份主要备份以下的数据:

(1)备份DomsInfo目录

默认在C:\Program Files\Common Files\Mercury Interactive 下。这个目录包含了Doms.mdb 文件(用户信息和工程列表)、connection strings(连接字符串)、parameters(参数)、global style sheets(全局风格表)、the database template(Empty_DB.mdb)(一些临时数据)

(2)备份TD项目安装文件

TD_Dir包含每个工程的自动测试、附件、设置、风格列表。默认在C:\TD_Dir\Default 目录下,打开这个目录可以看到TD 的工程文件,我们需要将这些工程文件备份下来。

(3)备份项目数据库

备份项目用的数据库文件,SQL SERVER可以使用它自带的备份功能。

3. 移植工作(四个部分)

(1)数据库的迁移

使用SQL Server 集成的导入和导出数据功能将原数据库文件导入新的SQL Server 服务器中。具体过程大家都应该很熟悉就不一一介绍了。最好不要改变数据库名称。

(2)建立访问数据表文件的TD用户

打开企业管理器,在目标数据库服务中点击”安全性”下”登录”,建立TD 用户;密码设为:tdtdtd;设定TD用户默认访问的数据库;把TD的”服务器角色”设为”System Administrators”;设定td用户能够访问TD项目的数据库和Master数据库。

(3)修改TD的配置项目文件(Access)

在TD 服务器上打开C:\ ProgramFiles\CommonFiles\MercuryInteractive\DomsInfo\doms.mdb 文件,此文件是经过加密处理的,其密码为:tdtdtd。接着我们根据自己的工作环境实际配置这些表, 需要修改的表是: DBSERVER、DOMAINS、PARAMS、PROJECT 和TDSERVERS 这五个表。

a. DBSERVER

DBSERVER_NAME(目标数据库服务器的名称)

DB_USER_PASS(用户密码如tdtdtd)

DB_ADMIN_USER(管理用户名如sa)

DB_ADMIN_PASSWORD(管理用户密码)

b. DOMAINS

PHYSICAL_DIRECTORY(基本上不要修改)

c. PARAMS

PARAM_VALUE(基本上不要修改)

d. PROJECT

PROJECT_ID (项目ID号不能重复)

PROJECT_NAME(项目名称)

DB_NAME(项目对应的数据库名称)

DB_TYPE (数据库类型1为ACCESS,2为SQLSERVER)

PHYSICAL_DIRECTORY (TD服务器中的共享目录)

DB_USER_PASS (TD用户密码如本例为tdtdtd)

DBSERVER_NAME (数据库服务器的名称)

e. TDSERVERS

DBSERVER_NAME(数据库服务器的名称)

TD_IP_ADDRESS(数据库服务器的IP地址)

(4)修改Project中的INI文件

把C:\TD_Dir\Default 目录下面的项目文件,拷贝到目标计算机上。

打开某一个项目文件夹中的Dbid.ini 文件:

[General]

Database_Type=MSSQL

Created_Date=06/11/05 14:31:15

Created_By=td

AliasName=TEST

Database Name=default_test_db

Database Server=192.168.0.100

Domain Name=DEFAULT

SendAllQualified=Y

Has_VCS_DB=Y

需要修改的内容是:

Database Name=default_test_db

Database Server=192.168.0.100

到此为止,移植工作就已经完成了。你可以正常使用移植后TD了。