专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

c# 应用程序与EXCEL交互时遇到的权限问题

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:05:32       共计:3608 浏览

1、异常详细信息: System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。

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

 
解决方案:

1.1按照以下路径进入:控制面板/管理工具/组件服务/DCOM配置(或者开始/运行/dcomcnfg.exe/DCOM配置

1.2选择组件:Microsoft Excel Application,选中并右键选择属性。

1.3进入“安全”选项卡,对于“启动和激活权限”和“访问权限”分别选中“网络服务(即NETWORK SERVICE)”用户,并分别赋予“本地激活”、“本地启动”、“本地访问”权限。我使用的为IIS 6,故选择NETWORK SERVICE,若使用IIS 5,则选择{MACHINE}\ASPNET赋予相应权限。

  

2、异常详细信息: System.Runtime.InteropServices.COMException: 内存或磁盘空间不足,Microsoft Office Excel 无法再次打开或保存任何文档。
要想获得更多的可用内存,请关闭不再使用的工作簿或程序。
要想释放磁盘空间,请删除相应磁盘上不需要的文件。

解决方案:

2.1按照以下路径进入:控制面板/管理工具/组件服务/DCOM配置(或者开始/运行/dcomcnfg.exe/DCOM配置

2.2选择组件:Microsoft Excel Application,选中并右键选择属性。

2.3进入“标识”选项卡,有“启动用户”改为“交互式用户”。

 

3、异常详细信息: System.ComponentModel.Win32Exception: 拒绝访问。
[Win32Exception (0x80004005): 拒绝访问。]
   System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited) +955728
   System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited) +396
   System.Diagnostics.Process.GetProcessTimes() +67
   System.Diagnostics.Process.get_StartTime() +31
   ExcelHelper.KillExcelProcess() +135
   ExcelHelper.Dispose() +416
   ExcelHelper.OutputExcelFile() +270
   ExcelHelperWeb._Default.btnExportExcel_Click(Object sender, EventArgs e) +247

解决方案(任选其一)

3.1在web.config中配置:

<identity impersonate="true" userName="服务器系统用户名" password="服务器系统密码"/>,放在<system.web>下。

3.2ASP.NET设为管理员权限(IIS5及以下),或者NETWORKSERVICE(IIS6)


“/”应用程序中的服务器错误。


拒绝访问。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

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

源错误:

执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:

[Win32Exception (0x80004005): 拒绝访问。]
   System.Diagnostics.ProcessManager.OpenProcess(Int32 processId, Int32 access, Boolean throwIfExited) +6622586
   System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited) +93
   System.Diagnostics.Process.Kill() +46
   DTcms.Web.tools.ToExcelHandler.Kill() +49
   DTcms.Web.tools.ToExcelHandler.saveExcel() +341
   DTcms.Web.tools.ToExcelHandler.createExcel() +595
   DTcms.Web.tools.ToExcelHandler.ProcessRequest(HttpContext context) +274
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +341
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:c#杀死一个进程的某些相关线程的安全例子 | ·下一条:在线生成等待图片ajax loader gif

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有