» 您尚未 登录   注册 | 社区服务 | 帮助 | 社区 | 无图版


常州五颜六色网络技术有限公司 -> 技术文档 -> Windows 2003 Server 中DOTNET程序访问COM组件
 XML   RSS 2.0   WAP 

--> 本页主题: Windows 2003 Server 中DOTNET程序访问COM组件 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题
吸血狼王




该用户目前不在线
级别: 侠客
精华: 0
发帖: 82
威望: 0 点
金钱: 180 RMB
贡献值: 0 点
在线时间:19(小时)
注册时间:2006-10-07
最后登录:2007-01-04
查看作者资料 发送短消息 推荐此帖 引用回复这个帖子

Windows 2003 Server 中DOTNET程序访问COM组件

项目:DOTNET项目,C#开发,主要功能是通过COM组件访问远程接口。

运行环境:Windows 2003 Server + IIS6.0 + .Net 1.1

问题:COM组件及系统在WINDOWS2000操作系统下都能正常使用,但迁移到WIN2003下,在程序调用组件时进程卡住了,有时会返回服务器出现意外情况的错误~

原因分析:首先,组件在其它操作系统下通过,说明组件应该没问题;注册COM组件及DOTNET项目引用方法均正确,而错误出现在调用组件这一步,而COM组件的功能就是通过IP地址及端口访问远程接口,这里注意有一个远程网络连接的工作;上网搜索类似问题,大部分文章都是组件的权限问题,我也根据文章所写设置了组件,IIS访问用户等的权限,都给予了最大权限,结果还是不行。。快崩溃了。。

解决方法:被这个问题折磨了几天之后,公司联系了微软客户支持,micro给了个方法,查看下IIS6.0里的应用程序池的安全性权限。查看了下,在IIS里的应用程序池属性中,“标识”标签下有个默认的安全性帐户“网络服务”即NetWork Service。Network Service 是 Windows Server 2003 中的内置帐户,其属于IIS_WPG 组,IIS_WPG 的成员具有适当的 NTFS 权限和必要的用户权限,按微软网站上的文章所说,Network Service 帐户具有充当 IIS 6 工作进程的进程标识的充足权限,以及具有访问网络的权限。但不知道为什么,这里的NetWork Service权限不够,造成不能调用组件访问远程接口。解决的方法就是将IIS_WPG帐户设置为读取与执行、列出文件夹目录、读取,而NETWORK SERVICE则需要完全控制权限。根据以上方法,我把NetWork Service赋于到Administrator组 ^_ ,重启IIS,再运行程序,OK,正常调用组件了~~

因此如果有朋友再有碰到调用COM组件不能用时,考虑一下应用程序池的权限~~

参考以下文章: http://www.microsoft.com/china/technet/community/columns/insider/iisi1203.mspx


常州五颜六色网络技术有限公司(5y6s Inc.) 常州网站建设 常州网站设计 常州网页设计
常州本地服务器托管:电信1000M共享/网通100M共享/电信+网通双线路

Tel:0519-6605212(公司)

[楼 主] | Posted: 2006-12-09 23:21 顶端

常州五颜六色网络技术有限公司 -> 技术文档



Copyright © 2005-2009 5y6s Inc. 苏ICP备05001866号 Powered by PHPWind 5.0.1
Total 0.019016(s) query 4, Gzip enabled
会员言论不代表本站立场 本站法律顾问:北京汇泽律师事务所 韩律师
QQ:点击这里给我发消息 /点击这里给我发消息 /点击这里给我发消息