如果管理员用户注销,服务器上的Excel应用程序将不工作

如果管理员用户注销,服务器上的Excel应用程序将不工作,excel,iis-7,windows-server-2008-r2,excel-interop,Excel,Iis 7,Windows Server 2008 R2,Excel Interop,我有一个ASP.NET应用程序,它使用Microsoft intrope程序集读取、写入和修改excel文件,并在服务器计算机上使用excel 2013。如果我以管理员身份登录到服务器计算机,应用程序工作正常,但当我注销时,应用程序无法初始化excel应用程序。这是个例外 System.Runtime.InteropServices.COMException (0x8000401A) 应用程序正在Windows Server 2008R2上运行,带有MS Excel 2013 32位。我无法找

我有一个ASP.NET应用程序,它使用Microsoft intrope程序集读取、写入和修改excel文件,并在服务器计算机上使用excel 2013。如果我以管理员身份登录到服务器计算机,应用程序工作正常,但当我注销时,应用程序无法初始化excel应用程序。这是个例外

System.Runtime.InteropServices.COMException (0x8000401A)

应用程序正在Windows Server 2008R2上运行,带有MS Excel 2013 32位。我无法找出此行为的原因。这是关于COM对象安全选项还是与IIS权限有关?

InteropServices类打开一个(不可见)Excel实例以完成其工作。Excel不能作为Windows服务运行,需要由登录用户实例化

“Microsoft目前不建议也不支持从任何无人值守、非交互式客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务)自动化Microsoft Office应用程序,因为Office在此环境中运行时可能会出现不稳定行为和/或死锁。” 有关更多信息,请参阅本页:

如果仍要保留互操作服务,请尝试将其更改为以交互用户身份运行:

  • 打开组件服务(开始->运行->MMC comexp.msc/32)
  • 查找组件服务->计算机->我的计算机->DCOM配置->Microsoft Excel应用程序
  • 单击鼠标右键,选择“属性”
  • 转到“标识”选项卡并选择“交互式用户”
  • 如果这不起作用,您可以尝试手动输入用户凭据

当然,您也可以切换到另一个框架来读取文件

2008r2
迁移到
2012
后,我遇到了同样的问题。我的解决方案:

  • 查找组件服务->计算机->我的计算机->DCOM配置->Microsoft Excel应用程序
  • 单击鼠标右键,选择“属性”
  • 转到“标识”选项卡并选择此用户(输入用户和密码)

目前,我在使用交互式用户时遇到了这个问题,我尝试使用管理员凭据解决了这个问题,但VBA加载项不起作用。@AdilWaqar这些加载项是否集成到您的ASP.NET解决方案中,或者您在“实际”使用Excel时是否需要它们?没有加载项未集成到ASP.NET应用程序中,它基本上安装在服务器上并用Excel运行。@AdilWaqar尝试创建文件夹:“C:\Windows\SysWOW64\config\systemprofile\Desktop”无法用应用程序测试它,但它解决了许多互操作类的问题。AppData和Desktop文件夹都在SysWOW64和system32中