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

2016-02-19 16:09 6 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的Windows 2003 Server 中DOTNET程序访问COM组件,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - Web开发 】

          今天挺高兴,项目终于上线使用。只是上线之前遇到的问题折磨得人精疲力尽。。。不过总算解决了。。在这把问题说出来,希望对有需要的朋友提供些帮助~~

          项目: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,正常调用组件了~~

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

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

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

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

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

来源:http://www.tulaoshi.com/n/20160219/1611185.html

延伸阅读
COM组件的方法在IDL中的声明: [id(1), helpstring("方法InputArray")] HRESULT InputArray([in] VARIANT vData); 在脚本中建立数组并调用COM组件的方法: 当数组很大的时候,like 100k ,javascript在给数组赋值的时候效率非常低!完成时间,cpu占用率,占用的内存都大的可怕。反而VBScript却完成的很好。 C...
标签: 电脑入门
1、删除所有共享 设置更改为:
如何解决win7系统中com组件注册失败   1、首先打开开始菜单,在搜索框中输入cmd,然后菜单选择它并右击选择以管理员身份运行选项; 2、然后在弹出来的命令提示符窗口中,再次执行regsvr32 xxx.ocx命令,如指定完整路径需要用 上引号 括起,d:/组件/xxx.ocx; 3、接着就会提示组册成功了,是不是很简单呢。  &nb...
标签: Web开发
PHP4(windows版本)中的COM函数这几天一直在写excel转化成mysql,发现一篇文章,搜一下phpx论坛,没有这个帖子,把它转帖如下: PHP4(windows版本)中的COM函数 介绍 内置于PHP4里的COM函数对于我们在win32环境下开发程序是相当有吸引力的,但是至今仍没有多少相关的技术文档。本文将以三个例子分 别处理 MS office 2000 Word 、 Excel 、...
标签: Web开发
启动pb7.0,创建一个不可视的用户对象"uo_customer",新建"object",选择"custom  class" 类型,点击"ok"。 在新创建的用户对象中编写如下程序: 1.声明实例变量"instance  variables",对于com中不支持的类型,请声明为protected类型。protected: datastore  ds_datastore 2.新建三个成员函数: ...

经验教程

997

收藏

30
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部