调用Excle组件导出,解决权限问题

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


检索 COM 类工厂中 CLSID {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 8000401a 因为配置标识不正确,系统无法开始服务器进程。请检查用户名和密码。 (异常来自 HRESULT:0x8000401A)

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

异常详细信息: System.Runtime.InteropServices.COMException: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 8000401a 因为配置标识不正确,系统无法开始服务器进程。请检查用户名和密码。 (异常来自 HRESULT:0x8000401A)。

源错误:

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


堆栈跟踪:

 

[COMException   (0x8000401a): 检索   COM 类工厂中   CLSID 为   {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 8000401a 因为配置标识不正确,系统无法开始服务器进程。请检查用户名和密码。   (异常来自   HRESULT:0x8000401A)。]

     System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType   objectType) +0

     System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType   serverType) +110

     System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType   serverType, Object[] props, Boolean bNewObj) +94

     System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly,   Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal&   ctor, Boolean& bNeedSecurityCheck) +0

     System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean   skipCheckThis, Boolean fillCache) +117

     System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean   skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache) +247

     System.Activator.CreateInstance(Type type, Boolean nonPublic) +106

     Standard.Common.ExportFile.ExportTOExcel(List`1 MappingFilePath) in   D:\work\HBVWeb-T\Standard\Common\ExportFile.cs:271

     Standard.Controllers.ExcelExportController.Export(Nullable`1 userID) in   D:\work\HBVWeb-T\Standard\Controllers\ExcelExportController.cs:64

     lambda_method(Closure , ControllerBase , Object[] ) +118

     System.Web.Mvc.<>c__DisplayClass1.<WrapVoidAction>b__0(ControllerBase   controller, Object[] parameters) +15

     System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext   controllerContext, IDictionary`2 parameters) +248

     System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext   controllerContext, ActionDescriptor actionDescriptor, IDictionary`2   parameters) +39

     System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()   +125

     System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter   filter, ActionExecutingContext preContext, Func`1 continuation) +640

     System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext   controllerContext, IList`1 filters, ActionDescriptor actionDescriptor,   IDictionary`2 parameters) +312

     System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext   controllerContext, String actionName) +691

     System.Web.Mvc.Controller.ExecuteCore() +162

     System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +305

     System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62

     System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0()   +20

     System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()   +453

     System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&   completedSynchronously) +371

查看错误信息:Excle进程无法启动,请检查用户名和密码,我上次遇到这个问题是,只要我远程到这台服务器,导出正常,远程只要断开,马上就报这个错

纠结了我好久,查找了好久,有的说重装office,要么就是一堆的修改配置,几经周折,自己只能一步一步来试,终于让我解决了

解决上面的方法如下:

1:必须在所在的服务器安装offce

2:点击电脑开始==>运行:输入:Dcomcnfg 会打开组件服务窗口,点击树菜单上的:组件服务节点===>计算机===>我的电脑====》Microsoft Excle Application==>

右键点击属性===》弹出属性选项卡===》选中安全==》把选项卡中的所有权限选自定义===》编辑==》添加Everyone权限

3:再点击==》标示===》查看运行此程序的用户===》按理默认都是系统账号,但是有的电脑犯贱,安装的时候变成了启动用户,如果系统账号选择项无法选择,则点击下列用户

输入账号密码,但是如果服务器修改了密码,错误还是会回到以前一样

4:有的电脑在执行第二步的时候找不到Microsoft Excle Application,则在运行输入:mmc -32==》点击文件=》添加删除管理单元==》点击添加主键服务==》

组件服务节点===>计算机===>我的电脑====》Microsoft Excle Application==>

右键点击属性===》弹出属性选项卡===》选中安全==》把选项卡中的所有权限选自定义===》编辑==》添加Everyone权限

另外导出错误解决了,有时候还会报无权限下载,这是因为我们导出的Excle文件在服务器的某个文件夹,我们没有权限,同理,右键点击服务器上的文件夹,添加Everyone权限

就可以下载了

 

 

原文地址:https://www.cnblogs.com/BeyondWang/p/2751275.html