none
64位IIS7.5 上部署32位应用程序,Office组件访问失败!!! RRS feed

  • 问题

  • 我在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 ...

    2012年2月13日 2:14

答案

  • 在突然间,发现了一个现象:

    如果我使用远程连接到服务器,那么Office组件就可用。

    这就使我突然想起了是不是要为Office组件指定特定的账号。

    于是,我为Office组件指定了特定的运行账号,然后在Web.config中的identity中指定了相同的账号。这时,不用远程连接服务器Office组件也可用了。

    不知道是什么原因?请大家帮忙指点一下。


    THAT IS ALL ...

    2012年2月17日 2:09

全部回复