日期:2014-05-20  浏览次数:20508 次

asp.net操作Excel对象出错
在做一个excel导入oracle的功能
运行
Microsoft.Office.Interop.Excel.Application   excel   =   new   Microsoft.Office.Interop.Excel.Application   ();
出错,错误提示
:说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  

异常详细信息:   System.UnauthorizedAccessException:   拒绝访问。  

ASP.NET   未被授权访问所请求的资源。请考虑授予   ASP.NET   请求标识访问此资源的权限。ASP.NET   有一个在应用程序没有模拟时使用的基进程标识(通常,在   IIS   5   上为   {MACHINE}\ASPNET,在   IIS   6   上为网络服务)。如果应用程序正在通过   <identity   impersonate= "true "/>   模拟,则标识将为匿名用户(通常为   IUSR_MACHINENAME)或经过身份验证的请求用户。  

若要授予   ASP.NET   对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示   ASP.NET   帐户,选中所需访问权限对应的框。

我添加的com组件Microsoft   Excel   11.0   Object   Library
路径是:   C:\Program   Files\Microsoft   Office\OFFICE11\EXCEL.EXE
我把asp.net帐户添加进去,并且有全部权限,可是问题还是没解决,请问我要如何做?

------解决方案--------------------
给个提示:确定要导入的 excel 为真正的excel 文件。
我也做过类似的 SQLSERVER 的数据导入,因为导入的 excel 是通过程序导出的文件,
却不是真正的 excel 文件,所以出现过很多奇奇怪怪的错误。
------解决方案--------------------
请正确配置ASP.NET的运行权限。它可以访问excel的dll吗?

如果你对com不了解,可以先给asp.net授管理员权限,看问题是否解决。
------解决方案--------------------
要设置权限:从 "开始 " -运行-dcomcnfg-在应用程序中选择Microsoft
Excel 应用程序,点击其属性.在常规中的“应用程序”中选择“无”。选择“安全性”分别选择
“使用自定义访问权限(S)”和“使用自定义启动权限(M)”,然后选择编辑,添加Everyone用户。选择
“身份标识”中的“交互式用户”


------解决方案--------------------
开始-〉运行-〉dcomcnfg
打开组件服务后
进入到计算机-〉DCOM配置-〉Microsoft Excel 应用程序 右键属性。
在“安全”中将“启动和激活权限”“访问权限”和“配置权限”,这三项全部选为 自定义,并且添加Everyone用户就可以了。