COM+的配置:痛并快乐着

前几篇发布了之前写的两篇文章:个人管理:和工作谈恋爱 个人管理:放松离合与换档时刻,这两篇都属于个人管理系列的,今天把我04年写的有关解决COM+技术问题的一篇文章贴上来,发出来主要是想表达,在做任何事情中我们其实都可以做一些总结,在做任何事情中我们都可以做隐喻,程序就是游戏,把解决问题当成通关。

在开发和实施过程中,遇到的问题实在太多。这次我就围绕COM+的配置情况讲一下我经历的几次现场情况。把以下文字献给所有关心GCM的程序员、实施人员和测试人员,希望能同大家一起分享这些痛并快乐着的时刻。

都是你的错,轻易爱上我! ……Win2000

3.0刚开发完毕,也从龙泽搬回总部了。某天从A实施现场传来一个急救电话,需要我们这边派人去解决一下。简单询问了几下,我的天,竟然是2.0的问题。自从开发3.0我就不再照顾她了,没想到她在实施现场活得并不是很好。突然冒出2.0的问题着实让我有点担心,因为太久没有和这个老程序接触了,并且电话中的问题我也从来没有听过。当时只有自己去解决这个问题了,我也有点担心,这可是我第一次去实施现场。万一解决不了问题怎么办,我还能回家吗?实施人员不能进展,会不会痛扁我一顿?也不多想了,立马从公司出发。解决问题要紧,到了工地和井振威简单寒暄了几句后就看了下问题。看完后我愣了一下,对于2.0的实施情况我一点都不清楚(2.0诞生时俺还是一个初级程序员),突然遇到这个莫名的问题有点害怕。”所有的模块都是只能浏览数据而不能保存……其它工地2.0版本没有一点问题……,那应该不是程序本身的问题”,我的CPU开始运转了。”现场的网络环境和系统环境和其它几个项目有什么不同吗?”"现在服务器的操作系统是XP,其它项目都是2000!”。立刻要求去XP机器。由于服务器和客户端不在同一个地方,只有委屈井振威来回跑跑操作一下客户端了。当时也不知道怎么突然想到了系统的【事件查看器】,打开一看,看到了和DTC有关的错误,心中暗喜。看了一下日志的描述,发现是由于权限问题。DTC是COM+中处理分布式事务处理的协调器,主要功能就是提交更改。问题描述的不能保存数据肯定和他有关。问题定下来了,我也没有那么担心了。一般微软都喜欢把自己的服务类产品做成服务,打开【服务】能看到Distributed Transaction Coordinator,查看其属性,同2000对比了一下,发现是登录身份不一样。2000下是以本地系统帐户运行,而XP为了安全性用了系统一个特定用户运行,这样当不同操作系统交互时就会出现用户审核问题。把登录身份改成本地系统帐户运行,又麻烦井振威同志跑了趟客户端,2.0运行又是那么美,问题解决了。被夸奖了几句,我回家了。来的路上忧心忡忡,现在如释重担,解决了问题的感觉真爽!回去我得把这个问题反馈给开发和测试,不能只爱Win2000。

 

――――――――――――――友情提示――――――――――――――――

  • 遇到处理服务器类问题,最好查看【事件查看器】
  • 要想顺利解决问题,必须熟悉相关知识
  • 现场解决问题不要害怕
  • 解决问题后需要把解决办法反馈到开发

――――――――――――――――――――――――――――――――――

克隆机器惹的祸

    克隆人出现后也可以克隆机器了,让你安装系统就像吃方便面一样简单。但是他在实际过程中也会和我们开点玩笑。

自从上回解决了XP下的配置,曲忠琳只要接到电话反映不能保存的问题,肯定会先问”服务器操作系统?”这回又给我出了一个难题了。仍旧是不能保存的现象,但是按照上述方法解决总是不行。航空港实施地就在上地,坐着杨耀庭的汽车一下就到了。路上没有担心,毕竟我也不是第一次去解决问题了,心里素质也提高了J。由于上次的经验,这回去后简单演示了一下问题。立刻打开【事件查看器】,里面又出现了大红叉。通过阅读错误信息说明,发现是网络中DTC协调器都有一个GUID唯一标识,但是克隆机器也把GUID弄过来了。在网络中找到两个同一标识的DTC服务器当然就有问题了。按照说明,运行msdtc –uninstall,重启,msdtc –install,再次运行,3.0运行也是那么美J。我得抓紧时间回去告诉曲忠琳,下次遇到这种问题还要问问”你的机器是克隆的吗?”

 

――――――――――――――友情提示――――――――――――――――

  • 利用以前工作中基类的经验,直接打开【事件查看器】
  • 不同出错原因可能导致同一现象,不能果断的下结论

――――――――――――――――――――――――――――――――――

 

不能没有我 …… Win2003

连续解决了几个配置问题,总不会还有其它问题了吧。”楼下的机器不能使用我们系统。刚解决了XP,又迎来了2003,技术变化太快让我们程序员也更累了。

在客户端ping了一下服务器,不通。原来2003缺省下打开了自己的防火墙,使得客户端不能连接2003。打开后以为就一起OK了,哪知道又出现OLE error 80004027错误。大家也知道,微软的产品安全性一直都令人担忧,大家都习惯了在打补丁下生活了。由于对2003不熟悉,所以我想先看看有哪些新的系统组件。打开【添加删除】,点击【应用服务器】查看详细信息,发现【启用网络com+访问】没有安装。从名字来看,这个应该同网络访问有关,点击安装,运行正常,能够打开了。刚以后解决了。哪知又听到”能打开不能保存!”天啊,又是这个症状,太恶了。再打开【添加删除】安装【启用网络DTC访问】,运行又是那么美了J发现这几个安装提示文件大小都是0。”怎么会是0呢……那肯定应该是已经存在系统中了……可能就是设置项!”想到这就查看了一下2003的计算机COM+属性,和2000、XP相比,发现果真是由于考虑安全性,默认设置不一样了。由于公司怕追查盗版2003系统,以至于我也没有装2003,只能出现问题再解决,解决问题就显得有点延迟了,看来以后出了Longhorn我一定要先试用一下(就怕机器硬件跟不上)。

――――――――――――――友情提示――――――――――――――――

  • 技术发展太快,程序员也累。如果用户需要,那么我们就一定要跟上
  • 如果【添加删除】中显示文件大小为0,那肯定能在另一个地方通过配置达到同样目的

――――――――――――――――――――――――――――――――――

最头疼的一个问题

从2000、XP到2003,配置问题都遇到并解决了,该让我轻松了一下了吧。哪知道问题总是解决不完的,又从某个工地传出,程序运行起来报错”Interface not Supported”。这种问题见得多了,无非就是某个组件没有安装。可是问题偏不是这么简单,后来解决这个问题也花了我较多时间。

这个提示问题在几个实施地点都出现过了,但是在我们这一直没法复现,所以一阵子也没有解决。后来向信息中心申请,借了两台电脑,一台装2000,一台装XP,在工作组的网络环境中运行(虽然我推荐是在域中使用,但是就像上面所说,如果用户必须在工作组中使用,那我们就有责任解决)。现场情况模拟出来了,终于在我们这里复现了这个错误。程序员最怕调试的肯定就是偶发又不能复现的问题。

简单捣鼓了一下没有解决。出现这个奇怪的错误,真是让人烦恼,理论上讲不该会报这个错误。从网上搜索了很多此类错误的原因,微软网站、其它相关技术网站、搜索网站都被我搜刮了一遍,不是不相关就是和我遇到同样问题的求救。没办法,看来不能轻易解决了,只能靠自己了。

要想2000能够访问XP的COM+服务器,应该能先访问XP的共享目录吧? 在2000通过资源管理器查看XP的共享目录,但总会弹出用户对话框,输入XP上的用户名和密码,可就是访问不了。ping一下没有问题。”难道这么变态,一定要开启guest用户?”我启用了两个机器的guest用户,但仍旧不行。瞎试了一通之后觉得没有办法了,于是上网搜索了几篇相关访问XP机器的文章,按照文档提示进行进行修改了组策略,访问成功。以为解决了,打开GCM发现仍旧出现类似错误。”我的心太乱 要一些空白 你若是明白 让我暂时的离开”,又没有解决,头有点晕,于是休息一下。茶也喝了,休息也够了,接着工作吧。 “这个环境现在主要就是不处于域的环境,可能和工作组和域的差别有关。”又想起了【事件查看器】,想能从中得到一些消息,但是一无所获。COM+对权限配置也有几种,我看了一下启动权限的设置,没问题,是默认属性,没有人修改过。按道理现在能够通过网络访问各自机器就该能够启动COM+了。现在肯定出在启动COM+问题了,于是又回到组策略打开了【审核登录事件】和【审核帐户登录事件】。运行一下程序,在【安全日志】中出现了几个失败审核的记录,仔细查看一下并对照域环境下的审核记录,发现由于工作组(NtLmSsp)和域(Kerberos)的权限控制不一样。COM+的标识运行帐户为缺省的交互式用户,所以问题就可能出现在验证当前登录用户上。域环境下把用户的帐号密码都会在域控制器上保留一份,所以访问域中机器时对于帐号可以由域控制器统一处理。而在工作组下就不一样了,用户帐号和密码是保存在本地的SAM数据库中,假如我以用户A密码AA登录2000的话,当我访问XP机器时,XP机器会以A/AA登录,然而本地SAM数据库中并没有用户A/AA,当然就会登录失败了,而在域中可以到域控制器验证。知道这个原因就比较容易解决了,只要同时在两台机器中建立相同的用户名和密码就可以了,这个解决办法是不是很恶心啊J不管恶不恶心,问题终于算是解决了,但是还是希望以后实施时在域环境下工作。

――――――――――――――友情提示――――――――――――――――

  • 解决问题累了的话最好休息一下,喝喝茶聊聊天或者小睡一下
  • 解决复杂问题可能需要很多步骤,不能气馁
  • 要加强学习操作系统以及网络知识

――――――――――――――――――――――――――――――――――

结束语

COM+的配置问题不仅仅是上面几种情况,还有如防火墙之类的也是一个问题,在此就不多讲了。希望这些文字能给大家带来一些收益。

――――――――――――――友情提示――――――――――――――――

  • 程序就是游戏,把解决问题当成通关,你会更有动力
  • 解决问题中可能你会苦恼,解决后你肯定会高兴
  • 调试也是一门技术,同样需要平时的积累和交流

――――――――――――――――――――――――――――――――――

 

周金根 2004.9.11

发表评论