Windows7与Window2008 64位IIS7上面配置操作Excel (转)

今天操作EXCEL,通过读取EXCEL中的内容导入到数据库中,因为EXCEL文件不规则,所以采用打开EXCEL文件,根据指定行,列的方式去读取,然后录入数据库,但是在打开EXCEL时,发现如下问题:

 

System.Runtime.InteropServices.COMException (0x800A03EC): Microsoft Office Excel 不能访问文件“XXXXXXXX.xlsx”。 可能的原因有:

• 文件名称或路径不存在。

• 文件正被其他程序使用。

• 您正要保存的工作簿与当前打开的工作簿同名。   

在 Microsoft.Office.Interop.Excel.Workbooks._Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru)

 

解决办法:

1.

1).通过webconfig中增加模拟,加入管理员权限, <identity impersonate="true" userName="系统管理员" password="系统管理员密码"/> 2).这样就能够启动Application进程,操作EXCEL了,能够新建EXCEL,导出EXCEL,但是还是不能打开服务器端的EXCEL文件

2.

  在组件服务,DOCM设置 Microsoft Excel Application的属性,   因为是在64位系统上面操作,组件服务中DOCOM中默认是没有的,因为Microsoft Excel Application是32的DCOM配置,所以通过如下方式解决(参考第三步)

3.   

1).开始--〉运行--〉cmd   

2)命令提示符下面,输入mmc -32,打开32的控制台   

3).文件菜单中,添加删除管理单元--〉组件服务   

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

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

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

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

 

4.重新启动IIS,测试通过

原文链接:http://blog.csdn.net/Fibona/article/details/6105330

 

补充,以上步骤完成之后,要将应用程序池的运行用户改为NETWORKSERVICE,如下设置

打开 IIS 管理器。 有关如何打开 IIS 管理器的信息

  • “连接”窗格中,展开服务器节点,然后单击“应用程序池”

  • “应用程序池”页中,选择要为其指定标识的应用程序池,然后单击“操作”窗格中的“高级设置”

  • 对于“标识”属性,单击 ... 按钮以打开“应用程序池标识”对话框。

  • 如果您要使用内置帐户,请选中“内置帐户”选项,然后从列表中选择NETWORKSERVICE。

  • 单击“确定”关闭“应用程序池标识”对话框。

posted on 2012-08-31 10:32  小黑混北京  阅读(541)  评论(0编辑  收藏  举报