整了一个多月,将以前的COM+移植到win2003中,部署在两台服务器上,其间遇到了不少问题,经过网络搜索和测试,终于完成了。以前经常在CSDN上提问,现回报大家,多谢大家支持。
下面经验仅在Win2003Server标准版+IIS6.0+SQL2002005/VB6.0(sp6)+ASP测试过编制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服务。可参考http://support.microsoft.com/default.aspx?scid=kb;zh-cn;329332
http://support.microsoft.com/kb/816701/zh-cn3。确保服务启动:workstation
4。启用TCP/IP上的NetBIOS(或选默认)
5。135端口不能屏蔽掉上述设置可以解决"新事务不能登记到指定的事务处理器中" 错误。
其他经验:遇到不能解决的问题,可能CSDN一时解决不了,请google论坛搜索外文的,可能会找到答案。