积极答复者
64位IIS7.5 上部署32位应用程序,Office组件访问失败!!!

问题
-
我在64位IIS7.5 上部署32位应用程序,由于需要用到Word和Excel,部署后调用Office组件总是失败。
提示“检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 8000401a。”
以下是我的部署步骤,请大侠帮我看看还需要配置什么?
我的部署步骤是
一、生成安装程序
1. 在“生成”配置里选择“解决方案配置”为“Release”,选择“解决方案平台”为“x86”。选择“x86”平台是因为系统中需要使用32位的用于CA登陆的COM组件和32位的Office组件。
2. 重新生成安装程序。
二、发布应用程序
1.新建网站
在服务器端“运行”中输入“inetmgr”,进入 IIS 。例如,将网站命名为“YZHJServer”,选择网站的物理路径为一个空文件夹“D:\WebServer”,设置网站的IP地址为服务器IP,设置端口号为“8005”,点击确定,新建网站完毕。
2.更改应用程序池
网站成功建立后将同时生成同名应用程序池“YZHJServer”。
1). 打开该应用程序池的“高级设置”,在“常规”模块中将“启用32位应用程序”设置为“true”,使网站将以32位模式运行。
2). 更改“托管管道模式”为“Classic”。
3). 更改“标识”为“LocalSystem”或“NetworkService”,网站将以本地系统或网络服务的账户运行,而不是以“ApplicationPoolIndentity”账号运行。本地系统或网络服务账户比应用程序池标识账户拥有更大的权限,可调用Office组件。
3.开放网站端口
在“管理工具”中打开“高级安全Windows防火墙”。在“入站规则”中点击“新建规则”。在新建规则向导中为8005端口建立入站规则。新建步骤按向导进行,在此不再赘述。
4.配置Office组件
在“运行”中输入“comexp.msc -32”,打开 32位的“组件服务”管理单元。依次打开“组件服务”—“计算机”—“我的电脑”—“DCOM配置”。在“DCOM配置”中找到“Microsoft Office Word 97 - 2003 文档”和“Microsoft Excel Application”两项。分别将以上两项按下述步骤配置:
1). 打开“属性”对话框。
2). 打开“安全”选项卡,将“启动和激活权限”和“访问权限”都设置为“自定义”。并分别点击“编辑”按钮,为二者添加“IIS_IUSR”用户组、“IUSR”用户组、“System”用户组和“administrator”用户组,并设置其全部权限为“允许”。
3). 打开“标识”选项卡,将“选择运行此应用程序的用户账户”设置为“交互式用户”。5.添加Desktop文件夹
1). 分别向“C:\Windows\System32\config\systemprofile”和“C:\Windows\SysWOW64\config\systemprofile”中添加文件夹“Desktop”。
2). 为“Desktop”文件夹添加“NetworkService”、“IIS_IUSRS”、“IUSR”权限。THAT IS ALL ...
答案
-
在突然间,发现了一个现象:
如果我使用远程连接到服务器,那么Office组件就可用。
这就使我突然想起了是不是要为Office组件指定特定的账号。
于是,我为Office组件指定了特定的运行账号,然后在Web.config中的identity中指定了相同的账号。这时,不用远程连接服务器Office组件也可用了。
不知道是什么原因?请大家帮忙指点一下。
THAT IS ALL ...
- 已标记为答案 NineTyNine_LiPei 2012年2月17日 8:04
全部回复
-
你好,
首先,官方是不支持服务端的office自动化的:
服务器端 Office 自动化注意事项
http://support.microsoft.com/kb/257757
不过对于8000401a错语,你可以参考一下下面的文章:
http://classicasp.aspfaq.com/components/why-do-i-get-8000401a-errors.html
Leo Tang [MSFT]
MSDN Community Support | Feedback to us
Get or Request Code Sample from Microsoft
Please remember to mark the replies as answers if they help and unmark them if they provide no help. -
在突然间,发现了一个现象:
如果我使用远程连接到服务器,那么Office组件就可用。
这就使我突然想起了是不是要为Office组件指定特定的账号。
于是,我为Office组件指定了特定的运行账号,然后在Web.config中的identity中指定了相同的账号。这时,不用远程连接服务器Office组件也可用了。
不知道是什么原因?请大家帮忙指点一下。
THAT IS ALL ...
- 已标记为答案 NineTyNine_LiPei 2012年2月17日 8:04