服务器生成excel文件的问题
要在服务器上生成excel文件出现如下错误:
检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 8000401a。
网上有很多的解决办法,我按照其中一个用 DCOM配置工具更改excel的"启动和激活权限"、"访问权限"。
但是奇怪的是,当有人远程登录到server的时候,就可以正常生成,但是一旦没有人远程登录server的时候,就出上面的错误!!!
我的处理中有打开excel模板文件,从里面拷贝单元格的操作,是不是当没人登录的时候,不能图形化excel,所以出错啊!!!
------解决方案--------------------mark
------解决方案--------------------不厚道,怎么解决的呀?
------解决方案--------------------http://support.microsoft.com/kb/305761/en-us
没有交互用户在console登录,所以出现你看到的错误。
你在DCOMCNFG为excel添加了哪些交互用户?
确保访问权限和启动权限都有这些用户:
SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_ <machinename> *
IWAM_ <machinename> *
如果用了身份模拟 (在 web.config 中配置了 <identity impersonate= "true "/> ) ,需要删除。
------解决方案--------------------顶
------解决方案--------------------http://www.cnblogs.com/downmoon/archive/2009/01/16/1376702.html
http://blog.csdn.net/downmoon/archive/2009/01/16/3796652.aspx
------解决方案--------------------如何将 Office 应用程序配置为在特定用户帐户下运行
http://support.microsoft.com/default.aspx/kb/288367/zh-cn
------解决方案--------------------运行dcomcnfg打开组件服务,
依次展开"组件服务"->"计算机"->"我的电脑"->"DCOM配置"
找到"Microsoft Excel应用程序"或"Microsoft Word应用程序",
右键打开属性对话框,点击"标识"选项卡,
选择"启动用户"
点击"安全"选项卡,
依次把"启动和激活权限","访问权限","配置权限",都选择为自定义,
然后依次点击它们的编辑,把everyone添加进去,并加入所有的权限
------解决方案--------------------在webconfig中system.web配置如下
<identity impersonate="true" userName="Administrator" password="admin"/>
------解决方案--------------------以管理员身份登录到计算机,然后创建一个可自动运行 Office 的新用户帐户。在本例中,此帐户命名为 OfficeAutomationUser。创建此用户帐户的密码,并选择“永不过期”以便不必更改密码。
将 OfficeAutomationUser 帐户添加到“管理员”组。
以 OfficeAutomationUser 身份登录到计算机,并使用完整安装来安装(或重新安装)Office。为确保系统的可靠性,建议您将 Office CD-ROM 中的内容复制到本地驱动器并从此位置安装 Office。
启动要自动运行的 Office 应用程序。这会强制该应用程序进行自我注册。
运行该应用程序后,请按 Alt+F11 以加载 Microsoft Visual Basic for Applications (VBA) 编辑器。这会强制 VBA 进行初始化。
关闭应用程序,包括 VBA。
单击“开始”,单击“运行”,然后键入 DCOMCNFG。选择要自动运行的应用程序。应用程序名称如下所示:
Microsoft Access 97/2002 - Microsoft Access 数据库
Microsoft Access 2003 - Microsoft Office Access 应用程序
Microsoft Excel 97/2000/2002/2003 - Microsoft Excel 应用程序
Microsoft Word 97 - Microsoft Word Basic
Microsoft Word 2000/2002/2003 - Microsoft Word 文档
单击“属性”打开此应用程序的属性对话框。
单击“安全”选项卡。验证“使用默认的访问权限”和“使用默认的启动权限”已选中。
单击“标识”选项卡。选择“下列用户”,并键入 OfficeAutomationUser 的用户名和密码。
单击“确定”,关闭属性对话框并返回主应用程序列表对话框。
在“DCOM 配置”对话框中,单击“默认安全性”选项卡。
单击访问权限的“编辑默认值”。验证访问权限中是否列出下列用户,如果没有列出,则添加这些用户:
SYSTEM
INTERACTIVE
Everyone
Administrators
OfficeAutomationUser
IUSR_<machinename>*
IWAM_<machinename>*
* 这些帐户仅在计算机上安装有 Internet Information Server (IIS) 的情况下才存在。
确保允许每个用户访问,然后单击“确定”。
单击启动权限的“编辑默认值”。验证启动权限中是否列出下列用户,如果没有列出,则添加这些用户:
SYSTEM
INTERACTIVE
Everyone
Administrators
OfficeAutomationUser
IUSR_<machinename>*
IWAM_<machinename>*
* 这些帐户仅在计算机上安装有 IIS 的情况下才存在。
确保允许每个用户访问,然后单击“确定”。
单击“确定”关闭 DCOMCNFG。
启动 REGEDIT,然后验证对于要自动运行的 Office 应用程序,是否存在下列注册表项和字符串值:
Microsoft Access 2000/2002/2003: