现在的位置: 首页 > 综合 > 正文

在服务器端部署操作excel出错的解决方法

2014年01月03日 ⁄ 综合 ⁄ 共 1037字 ⁄ 字号 评论关闭

部署一个使用Excel的.net系统时出现如下问题:

拒绝访问。    
  说明:   执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。         
  异常详细信息:   System.ComponentModel.Win32Exception:   拒绝访问。       [Win32Exception   (0x80004005):   拒绝访问。]  
原因: 用户没有结束Excel进程的权限。解决方案:

1.在WEBCONFIG中使用
<identity impersonate="true" userName="服务器系统用户名" password="服务器系统密码"/>
放在<system.web>标签中
2.或者将ASP.NET设为管理员权限(IIS5及以下),或者NETWORKSERVICE(IIS6)

 

在服务器上发布Web项目,结果一个开发中一直没遇见的问题出现了:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。跟踪了一下,结果是将记录导出为Excel表时Excel的COM组件出错,但在VS2005里面却没有任何问题,查了下资料,问题解决。

 

具体解决方法如下:

1:在服务器上安装office的Excel软件.

2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"

3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"

4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框

5:点击"标识"标签,选择"交互式用户"

6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.

7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限.

这样,我们便配置好了相应的Excel的DCOM权限.

注意:这是在WIN2003上配置的,在2000,xp上,NETWORK SERVICE用户改为ASPNET用户

抱歉!评论已关闭.