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

艳艳108801

艳艳108801

2016-02-19 16:09

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的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组件不能用时,考虑一下应用程序池的权限~~

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)

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

  http://flyskywlh.cnblogs.com/archive/2006/07/07/445508.html

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/webkaifa/)
展开更多 50%)
分享

猜你喜欢

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

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

在SQL Server的存储过程中调用Com组件

SQLServer
在SQL Server的存储过程中调用Com组件

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

在jsp程序中使用com组件

Java JAVA基础
在jsp程序中使用com组件

在ASP中利用COM组件开发Web应用程序

ASP
在ASP中利用COM组件开发Web应用程序

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Windows Server 2003 防火墙

电脑网络
Windows Server 2003 防火墙

windows server 2003 中 SQL Server 2000 分布式事务 错误解决方

编程语言 网络编程
windows server 2003 中 SQL Server 2000 分布式事务 错误解决方

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

在Linux高负载下mysql数据库彻底优化

在Linux高负载下mysql数据库彻底优化

直径符号怎么打

直径符号怎么打
下拉加载更多内容 ↓