服务器端操作Excel

来源:互联网 发布:高校金融教学软件 编辑:程序博客网 时间:2024/06/06 01:52

服务器端操作Excel

此文作开发记录,以便日后查询回顾,主要是涉及权限方面

在项目中使用到服务器端操作EXCEL用到些问题
使用的是类库:Microsoft.Office.Interop.Excel.dll
本地调试是OK的,但是发布到服务器上就提示失败,然后各种原因查找,无果。
后在代码中添加Log日志以进行问题查找,(服务器无法调试的时候Log实在是帮助甚多)


在未做任何设置之前,IIS报的错误是:

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))
设置方法:DCOM组件配置
在服务器上操作excel要调用com组件,因此对network service的授权需要配置excel应用程序com组件。
1.在”开始”->”运行”中输入dcomcnfg.exe启动”组件服务”

2.依次双击”组件服务”->”计算机”->”我的电脑”->”DCOM配置”

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

4.点击”标识”标签,选择”交互式用户”

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

6.依然是”安全”标签,在”访问权限”上点击”自定义”,然后点击”编辑”,在弹出的”安全性”对话框中也填加一个”NETWORK SERVICE”用户,然后赋予”本地访问”权限.
(IUSR_MACHINENAME用户(备用)
如还有问题,则要考虑更换导出EXCEL的方法(引用NPOI),不依靠office的组件进行文件操作

原创粉丝点击