COM+在Windows 2003上的部署和调用

来源:互联网 发布:淘宝介入多久处理 编辑:程序博客网 时间:2024/06/06 04:11
【转】COM+在Windows 2003上的部署和调用




使用COM+开发的软件,从XP转移到2003时出现了问题,客户端无论如何都访问不到安装在Windows 2003上的COM+服务。经过测试,找到了问题的原因,下面是对相关设置的描述和测试的经过。希望对各位朋友有帮助。

COM+服务在Windows 2003 Server上部署后,客户端访问时报错“拒绝访问”,查阅CSDN上的有关文章提示,在服务器的组件服务中做了相关的设置:
1 组件服务-计算机-我的电脑-属性-默认属性页的默认身份验证级别是“连接”,默认模拟级别是“标识”
2 MSDTC页-安全配置,启用“网络DTC访问”,选中“允许远程客户端”、“允许远程管理”、“允许入站”、“允许出站”并不要求进行验证、启用XA事务,DTC登录账号为"NT Authority\NetworkService".
3 COM安全页-访问权限-编辑限制,设置帐号“Everyone”为允许“本地访问”和“远程访问”。启动和激活权限为“Everyone”允许“本地启动”、“远程启动”、“本地激活”、“远程激活”。
设置完成后,重启MSDTC,客户端调用仍然不能通过,返回错误信息“已禁用包含此组件或应用程序的组件”,根据出错信息判断,应与安全策略和账号权限方 面的设置有关。在检查服务器上的系统日志,发现产生了一个错误日志:“激活 CLSID {3C4A2D54-FBB8-4262-A444-77ABFCA5B7F2} 失败,因为 COM+ 的远程激活被禁用。 要启用此功能,请使用配置您的服务器向导,并选择“Web 应用程序服务器”角色。”错误代码10014
根据以上提示,又做了以下的设置:
1 打开控制面板-添加/删除程序-Windows组件-Application Server-启用网络 COM+ 访问, 确定。立即重新运行客户端测试,问题解决!
结论:Windows 2003的安全性较Windows XP高,在默认状态下,一些XP上允许的服务和权限都没有打开,而且安全配置作的比XP要细致。对于COM+应用来说,就是要通过设置打开“网络COM+ 访问”才能使用。以上的设置项适用于以下的Windows版本:
Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
Microsoft Windows Server 2003, Standard Edition (32-bit x86)
Microsoft Windows Small Business Server 2003 Premium Edition
Microsoft Windows Small Business Server 2003 Standard Edition
Microsoft Windows XP Professional for Itanium-based systems



来自: http://blog.csdn.net/jasondotwong/archive/2007/01/23/1491209.aspx

还有一种:
COM+在win2003+IIS+MSSQL环境下的部署步骤
作者:techmango 日期:2007-06-04

编制com+组件中:
1。与SQL连接字符串可以放在*.udl文件中,程序中调用该文件,注意该文件的安全问题
2。连接用时打开,用完马上关闭
请参考http://www.microsoft.com/china/msdn/archives/library/techart/complus.asp

安装com+组件:
1。一般直接将.dll和.tlb文件(还包括.udl)都拷贝到一个目录中,然后Regsvr32 .dll注册。
建立空应用程序--〉新建组件,此时选择.dll和.tlb,这样导出代理时只会导出.tlb文件安装到客户端比较安全。如果用于ASP,将IUSR_*加上。如果用于C/S结构,组模式下注意服务器端须建立客户端登录名相同的用户(密码也必须一样)。
2。角色权限检查
组件服务--〉计算机--我的电脑--COM+应用程序--〉你的程序,右键属性--安全,选中授权种选择框(强制进行访问权限检查);安全级别选中在进城级别和组件即别执行检查;身份验证:数据包;模拟级别:模拟。然后在每个组件下设置授权。
3。激活权限
组件服务--〉计算机--我的电脑--右键属性--com安全,访问限制---编制限制:Everyone允许本地访问/远程访问;启动和激活权限:Everyone本地启动/本地激活/远程激活。

如果com+组件/IIS/SQL在同一服务器上,上面设置已经可以了。如果COM+组件+IIS在服务器1上,SQL在服务器2上,需双机加上如下设置:
1。双机管理员密码可以不一样
2。组件服务--〉计算机--我的电脑--右键属性--默认属性:选中"在此计算机上启用分布式COM",默认身份验证好像"无"和"连接"都可以,模拟级别只测试了"标识"。(有心人可测试别的);转到下一卡片MSDTC中,安全设置:选中"网络DTC访问",选中"允许远程客户端"、"允许远程管理"、"允许入站"、"允许出站"、"不要求进行验证"、"启用XA事务",DTC登录帐户"NT Authority\NetworkServices"。然后会自动启动DTC服务。
原创粉丝点击