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

server|window|程序|访问

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

  项目: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

时间: 2024-11-03 19:52:22

Windows 2003 Server 中DOTNET程序访问COM组件的相关文章

在windows 2003 server中编写asp代码需要注意的地方

server|window 在windows 2003 server中编写asp代码,你可能会碰到下面的错误提示"不允许的父路径",涉及到的代码有: Server.MapPath(../)<!--#include file="../"--> 等.可能是出于安全考虑吧,微软屏蔽了脚本中对父路径的访问,但这可能会给我们的编程带来麻烦,尤其是原有asp的代码升级的时候.幸好,这个设置是可以关闭的,具体在下面这个地方IIS管理器中,在你的虚拟路径上点右键,属性,

Windows 2003 server R2 的IIS上配置Webdav

  通常,进行文件共享在局域网内一般会通过file协议,也就是普通的文件共享来进行;在internet上则通常利用ftp或者http协议进行.但是利用http一般只是单向的共享,不便于文件上传,传统地会使用ftp.但是windows server还可以利用webdav(web-based distributed authoring and versioning,基于web的分布式创作和版本控制)来进行文件共享. webdav是基于 http 1.1 的一个通信协议.它为 http 1.1 添加了

在Windows 2003下面调试ASP程序的常见错误以及解决方案

window|程序|错误|解决 由于工作原因,笔者经常需要使用Asp开发一些小型程序,在Windows 2000下开发和使用相关程序时一般不会出现什么问题,并且也很容易解决.但是由于笔者为了尝鲜使用了Windows 2003 Server时,开发相关程序就出现了这样那样的问题,比如浏览器不能显示详细出错信息,连接Access时总是报错等,让笔者苦不堪言.在多次实践和查看了一些参考资料之后,对处理相关的问题有了一些经验,现在终于可以在Windows 2003 Server 下面调试和使用相关的程序

Sql Server中的表访问方式Table Scan, Index Scan, Index Seek

  Sql Server中的表访问方式Table Scan, Index Scan, Index Seek 0.参考文献 oracle表访问方式 Index Seek和Index Scan的区别以及适用情况 1.oracle中的表访问方式 在oracle中有表访问方式的说法,访问表中的数据主要通过三种方式进行访问: 全表扫描(full table scan),直接访问数据页,查找满足条件的数据 通过rowid扫描(table access by rowid),如果知道数据的rowid,那么直接通

windows 2003 server技术专题(1)

server|window 对于全世界的人来说当今可以算得上是一个多事之秋,战争.疾病,每一样都牵动着我们的心,所以Windows Server 2003的问世就没有像以往微软推出新操作系统那么受到关注,但是即便如此,Windows Server 2003的饷⒃诘鼻坝械悴惶骼实奶炜障乱材岩员谎谧.阋蚕肟矗恳黄鹄窗伞? Windows Server 2003作为.Net架构提出以来最重要.最基础性的产品,它一经推出就吸引了业内人士关注的目光.让我们取下口罩,与Windows Server 20

解决windows 2003+Sql2000中OLEDB分布式事务无法启动的解决方案

window|分布式|解决 在开发分布式数据库软件时,经常碰到下面的错误:服务器: 消息 7391,级别 16,状态 1,行 6该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务.[OLE/DB provider returned message: 不能在指定的事务处理器中获得新事务.]-----------------------------------------服务器: 消息 8520,级别 20,状态 1,行 8内部 MSDTC 事务的提交失败: Re

windows 2003 server技术专题(12)

server|window 本篇是介绍在WINDOWS SERVER 2003中碰到的启动问题一般流程. A successful Windows startup includes of the following four phases: 1个成功的WINDOWS启动半含以下四个阶段 ·Initial phase 初始化阶段 ·Boot loader phase 启动运行阶段 ·Kernel phase 内核运行阶段 ·Logon phase登陆阶段 If a problem occurs d

Windows 2003 Server安全配置完整篇(2)

二.关闭不需要的服务 打开相应的审核策略 我关闭了以下的服务 Computer Browser 维护网络上计算机的最新列表以及提供这个列表 Task scheduler 允许程序在指定时间运行 Messenger 传输客户端和服务器之间的 NET SEND 和 警报器服务消息 Distributed File System: 局域网管理共享文件,不需要禁用 Distributed linktracking client:用于局域网更新连接信息,不需要禁用 Error reporting serv

windows 2003 server系统自动登录方法

server|window|自动登录 通常远程服务器我们都需要设置系统为自动登陆然后再自动锁定屏幕,在这里,我们说说如何让win2003 server系统自动登陆.       第一种方法比较简单,您只需单击"开始|运行",并在输入框中键入"control userpasswords2",这样就可以在"用户账户"管理窗口中清除"要使用本机,用户必须输入密码"复选项的选中状态,然后按下键盘的"Ctrl+Shift+A&