Code Bye

Microsoft Office Excel 不能访问文件,可能的原因

在VS2008 中写了一个EXCEL的导出功能的东西,但在Windows Server 2008上发布后遇到个问题,EXCEL文件确实存在,但.net调用的EXCEL却不能打开这个EXCEL文件,代码执行到打开文件的时候报错,异常如下:
Microsoft Office Excel 不能访问文件“a.xls”。 可能的原因有:
? 文件名称或路径不存在。
? 文件正被其他程序使用。
? 您正要保存的工作簿与当前打开的工作簿同名
此代码在2003的服务器上运行的没有问题,在给工作目录加上了相应的权限后发现问题依旧。找到一个解决方法,以下是其中关键的部分:
This solution is …
?Windows 2008 Server x64
Please make this folder.
C:\Windows\SysWOW64\config\systemprofile\Desktop
?Windows 2008 Server x86
Please make this folder.
C:\Windows\System32\config\systemprofile\Desktop
…instead of dcomcnfg.exe.
This operation took away office automation problems in my system.
A Desktop folder seems to be necessary in the systemprofile folder to open file by Excel.
It disappears from Windows2008, Windows2003 had the folder,
and I think it cause this error.

即在C:\Windows\System32\config\systemprofile和C:\Windows\SysWOW64\config\systemprofile目录下创建名为Desktop目录即可解决问题。
另:
解决办法:
1.
1).通过webconfig中增加模拟,加入管理员权限,

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,测试通过


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Microsoft Office Excel 不能访问文件,可能的原因