显示标签为“微软”的博文。显示所有博文
显示标签为“微软”的博文。显示所有博文

2007年5月29日星期二

DCOM迷航(二)

如何使DCOM的服务器可以回调客户端的函数。在尝试了若干人指出的若干方法之后,发现只有一种可以。就是在服务器和客户端创建两个用户名和密码相同的用户,服务器的DCOM指定用这个用户运行,客户端起码要是Power Users,就可以顺利回调。

2007年5月21日星期一

DCOM迷航(一)

为了玩OPC,必须在机器上让DCOM跑起来。使用dcomcnfg这个工具配置DCOM时,发现一选择“COM+应用程序”这个组就会出现一个错误,查看事件查看器,发现了这样一个错误信息:

运行时环境检测到其内部状态存在不一致。这说明进程中存在潜在的不稳定性,可能是由于 COM+ 应用程序中运行自定义组件、COM+
应用程序使用的组件或其他因素引起的。Error in
d:\qxp_slp\com\com1x\src\comsvcs\txprop\dtcinfo.cpp(158), hr = 8000ffff:
TransactionManager->GetWhereaboutsSize
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp
的帮助和支持中心。

一头雾水。不过微软的出错信息就是天书,否则要个那么大型的MSDN做什么?还好,有Google,搜了一下“qxp_slp”,发现了微软自己的一篇文章。大概是说,安装了一个微软的补丁MS05-051后,%windir%\registration目录的权限会出现问题,会导致COM+出现很多问题,其中一个会提示上面这个信息。按照微软的指示,更改了权限后,发现结果还是一样。“COM+应用程序”照样出错。后来醒目一点,把事件查看器里面的打叉的记录一条一条调出来看,发现了一个问题:

正在运行 MS DTC 服务的帐户无效。 如果使用 Microsoft Management Console (MMC)
中的“服务”管理单元更改了服务帐户信息,就会发生这种情况。 MS DTC 服务将继续启动。请确认使用“组件服务管理器”更新了 MS DTC 服务帐户信息。
有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp
的帮助和支持中心。


发现这条出错信息之后,才会不断地出现第一条出错信息,看了这是罪魁祸首。同样的,不知道它在说什么。还好,又google了一下,又在微软那里查到了解决办法。在强行为MS
DTC服务创建了NT AUTHORITY\NetworkService登录用户后,一切正常。

2007年5月16日星期三

谁说自由软件运动已死

今天好多网站上都在说“微软主管声称自由软件运动已死”(英文):

前IBM员工现微软首席平台战略主管,微软Linux实验室负责人Bill Hilf狂言宣称要剥开围绕在开源软件周围的神话。“自由软件运动正走向死亡,Linux在2007年不再存在,你看就连Linus都有一个工作。”Linux
kernel是由全职雇员维护的,拥有优先认股权。大部分人在IBM,Oracle,RedHat等商业公司工作。这意味着什么?这说明Linux在
2007年不再存在(我觉得他疯了)。世界上没有什么免费软件运动。如果说Linux代表了爱,和平和和谐,这是错误的,再说一遍没有自由软件运动,这都是商业行为。是由大的商业公司如IBM和小的商业公司如Ubuntu组成的。Hilf表示微软对开源感兴趣也是出于商业原因,不是什么伟大的利他性、爱或是营销手段。

微软又在做它的FUD(Fear, Uncerntainty and Doubt)战略了。这次采用的是偷梁换柱的手法。首先,Linux不是开源的全部,作为开源操作系统,FreeBSD早就解决了源代码和Unix专利的授权问题。Linux其实应该叫GNU-Linux,除了核心之外,其余的部分,从编译器到系统库(GLIBC)大量采用GNU的东西。GNU是GNU is Not Unix的缩写,是Richard Stallman在多年前,看不惯大公司垄断操作系统而建立的项目,所有的东西几乎都是从头写起,全部开源,而且都是基于GPL,目的就是为了这些源代码不至于给某些公司封闭起来,而是大家可以共享所有人的成果,真正的人人为我,我为人人。所以GNU才是开源运动的发源地。开源运动的结果是推动了信息产业的快速向前发展。问问现在多少人在用GCC就可以了。所以,即使Linux商业化了,我们仍然有其他选择,可以用FreeBSD,可以用各种其他的开源操作系统,GNU甚至有自己的内核叫Hurd。更何况在众多Linux的商业发行版之外,还有一个完全遵循GNU方式的发行版Debian

其次,Linus Torvalds也不是开源运动的领袖。真正的领袖是Richard Stallman。他,总是“风尘仆仆,行囊相随,四处布道。他带着一台笔记本电脑,但这不是他个人的,而是属于自由软件基金(FSF)。其实,Richard Stallman 从来就没有拥有过一台自己的计算机。也从来只用自由软件(当然他从来没有用过Windows)。而且,他也没有自己的汽车、电视和房产。这位46岁的单身汉节俭地居住在一间租来的房子里。已有15年了,没有领取过一个月的正式工资。因为他的工作就是使软件获得自由。”

所以,微软应该去看看Sourceforge和Freshmeat上有多少开源项目,有多少人在使用开源项目,再来说自由软件有没有死。

从我自己的例子再来说明,自由软件运动为什么不会死。微软曾经有一段时间免费提供VC++ Express 2005下载,我庆幸了很久,微软也终于肯把编译器免费提供了。实际上发现我错了,微软花了一年时间也没解决“updating intellisense... ”的问题,最后问题解决了,却发现最终解决问题的补丁没法下载,一定要订阅MSDN才可以拿到。这就是Richard Stallman说的不“自由”,要么我选择不用微软的产品,要么就要忍受这种非常不公平的待遇。相反,我在一个项目里面用了开源的产品,结果发现它在处理中文时候有问题,我马上浏览源代码,很快就发现了问题所在,我一方面将修改发给了项目的开发团队,他们承诺会在下一个版本纠正,另外一方面,我自己修改了源代码,更正错误,我的软件马上就可以正常工作了,所以这样才是使用软件的“自由”。

我相信微软还是可以继续强大很久,我也承认微软产品的易用程度、功能、普及程度远远高于自由软件。但是自由软件运动不会死,而且会继续扮演着非常重要的角色,而且将会有更多的人参与到里面来。