用C#创建window service服务遇到的问题

枫叶萧子 2011-08-11 12:44:33
我用VS2005创建一个window服务,主要想实现拦截指定IE地址,在winform里面是可行的,可是一转到服务就报错了。求解,谢谢!
-------------------------------------------------------------
using SHDocVw;
……
try
{
Current_IE_Handles = new ArrayList();
shellWindows = new ShellWindowsClass(); //这句出错
shellWindows.WindowRegistered += new DShellWindowsEvents_WindowRegisteredEventHandler(shellWindows_WindowRegistered);
shellWindows.WindowRevoked += new DShellWindowsEvents_WindowRevokedEventHandler(shellWindows_WindowRevoked);
}
catch (Exception ex)
{
WriteLog("错误", ex.ToString());
}
----------------------------------------------
错误:System.IO.FileNotFoundException: 检索 COM 类工厂中 CLSID 为 {9BA05972-F6A8-11CF-A442-00A0C90A8F39} 的组件时失败,原因是出现以下错误: 80070002。

PS:BHO已经实现了的,但是服务不行,求救~~
或者有没有更好的办法?谢谢~~~
...全文
169 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mjp1234airen4385 2011-08-12
  • 打赏
  • 举报
回复
在服务里,没有登录用户的话,有部分组件是不注册的。
也许你用的com组件在用户没有登录的情况下是不注册。
你调用的时候就出错了。
枫叶萧子 2011-08-12
  • 打赏
  • 举报
回复
谢谢 findcaiyzh 的耐心答复。
我的账户本来就是administrator的,应该没权限问题,运行了还是提示那个错误。
但是我想问下,我的是服务类型的,那该设置什么组件的操作权限?
另外我有点不明白,我写的是服务,为什么要去组件服务里面设置的呢?
机器人 2011-08-11
  • 打赏
  • 举报
回复
作为 windows 服务的时候,启动路径是在 %SystemRoot%/System32 下。用到的dll需要拷贝到运行目录下。
宝_爸 2011-08-11
  • 打赏
  • 举报
回复
或者用dcomcnfg设置com的权限。
宝_爸 2011-08-11
  • 打赏
  • 举报
回复
看起来像权限问题,用Administrator运行服务试下。在service中可以设置。
moxcm 2011-08-11
  • 打赏
  • 举报
回复
缺乏相应的组件:CLSID 为 {9BA05972-F6A8-11CF-A442-00A0C90A8F39},楼主可以将 Interop.ShDocVw.dll 弄到GAC.
shubin2009 2011-08-11
  • 打赏
  • 举报
回复
没看明白
宝_爸 2011-08-11
  • 打赏
  • 举报
回复
下面是asp.net的,你要设置运行windows的账号的权限

在DCOM组件服务中给MICROSOFT.EXCEL组件 赋予ASP.NET的操作权限,具体步骤:
(1)打开开始菜单的运行对话框,输入dcomcnfg命令,确定,这时会弹出组件服务窗口
(2)展开计算机-〉我的电脑-〉DCOM配置,找到Microsoft Excel应用程序节点
(3)单击右键-〉属性,选中“安全”选项,在下面三个项目都选择“自定义”,并单击编辑按钮
(4)在启动权限对话框中点击添加按钮,添加相应的用户(注意:如果是WIN2000,XP,则添加“机器名/ASPNET”用户,我这里是以WIN2003为例,WIN2003是添加“NETWORK Service”用户),并赋予最大权限
宝_爸 2011-08-11
  • 打赏
  • 举报
回复
先用Administrator运行服务试下。在service中可以设置。
确定是权限问题。
枫叶萧子 2011-08-11
  • 打赏
  • 举报
回复
谢谢,不过
GAC里面有Interop.ShDocVw.dll的了
%SystemRoot%/System32里面也有相关的DLL

dcomcnfg如何设置com的权限?

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧