Microsoft Excel 不能访问文件“ 文件名称或路径不存在。 • 文件正被其他程序使用。 • 您正要保存的工作簿与当前打开的工作簿同名。

Microsoft Office Excel 不能访问文件“D:\WWWRoot\KOBELCOSH\WebUI\ExcelTemplate\QUOTE5.xls”。 可能的原因有:
1 文件名称或路径不存在。
2 文件正被其他程序使用。
3 您正要保存的工作簿与当前打开的工作簿同名。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Runtime.InteropServices.COMException: Microsoft Office Excel 不能访问文件“D:\WWWRoot\KOBELCOSH\WebUI\ExcelTemplate\QUOTE5.xls”。 可能的原因有:
1 文件名称或路径不存在。
2 文件正被其他程序使用。
3 您正要保存的工作簿与当前打开的工作簿同名。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 
堆栈跟踪:

[COMException (0x800a03ec): Microsoft Office Excel 不能访问文件“D:\WWWRoot\KOBELCOSH\WebUI\ExcelTemplate\QUOTE5.xls”。 可能的原因有:
? 文件名称或路径不存在。
? 文件正被其他程序使用。
? 您正要保存的工作簿与当前打开的工作簿同名。]
   Microsoft.Office.Interop.Excel.Workbooks.Add(Object Template) +0
   KOBELCO.WebUI.Quote5.OutputExcel(String lblMachineModel, String lbPhone, String lblFax, String lblCustomerNameCn, String lblAgentNameA, String lblAgentPhoneA, String lblUseModel, String lblComment) in D:\Mingyou\KOBELCOSH\Kobelco\WebUI\Quote5.aspx.cs:38
   KOBELCO.WebUI.Quote5.gvResult_SelectedIndexChanging(Object sender, GridViewSelectEventArgs e) in D:\Mingyou\KOBELCOSH\Kobelco\WebUI\Quote5.aspx.cs:180
   System.Web.UI.WebControls.GridView.OnSelectedIndexChanging(GridViewSelectEventArgs e) +108
   System.Web.UI.WebControls.GridView.HandleSelect(Int32 rowIndex) +43
   System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +197
   System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e) +95
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
   System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +123
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
   System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +118
   System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +135
   System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
 
 
解决办法:
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,测试通过



如果是iis7+win2008 R2 则在组件服务中的 EXCEL Application 修改以上属性即可。
posted @ 2012-07-17 10:50  y0umer  阅读(1118)  评论(0编辑  收藏  举报