我正在运行 Microsoft Web 平台安装程序,它正在尝试安装 IIS5.1。不幸的是,我收到以下错误:
安装程序无法复制文件 staxmem.dll
确保下面指定的位置正确,或者更改它并在指定的驱动器中插入“Windows XP Proffessional Service Pack 3 CD”。
目录:\windows\ServicePack文件\i386
现在我通过 Windows 更新下载了服务包,所以我没有 CD。我通过 Google 搜索,找到了此支持页面。我按照第一组说明操作,数据库没有任何问题,因此我继续执行步骤 2。不幸的是,这再次需要 Service Pack CD。
对硬盘的搜索表明该文件位于指定的目录中。
那么我该如何继续安装呢?
是因为文件已经存在于目标位置并且正在使用吗?如果是这样,则意味着 IIS 已安装在计算机上。因此,在这种情况下,问题就变成了 - 为什么 Web 平台安装程序会尝试安装已经安装的东西?
答案1
我也在超级用户(部分是为了启动我在那里的帐户)并得到了答案。这是答案的相关部分:
该支持页面具有误导性。当它说明该工具是否返回以下消息时:
“此操作可能会发现该数据库已损坏”
这意味着输出是否在某处包含该文本?不,这不是唯一的输出。输出仍然看起来与第二个示例大致相同,但输出中的某处包含上面的行。即使该工具发现可能的损坏,它仍会在输出结束时显示“完整性检查成功”。
现在一切都解决了。我应该立即尝试一下,但支持页面似乎明确说明了哪种解决方案可行。
答案2
如果这种情况发生在 Win2k3 服务器上,我猜是因为 ServicePackFiles 文件夹已从 C:\Windows 中删除。我不知道 XP 是否使用相同的机制,但值得检查一下。如果原始安装没有 SP3,并且随后安装了 SP3,则 ServicePackFiles 文件夹将保存 SP3 版本的安装文件(可能包括 staxmem.dll)。如果找不到 ServicePackFiles 文件夹,安装程序会提示输入所需的文件,但它只会接受 SP3 版本。
您可以尝试重新安装 SP3,然后再次尝试安装 Web 平台。
JR
答案3
此问题与 secedit.sdb 损坏有关。例如,%windir%\security\database 中的 secedit.sdb 可能已损坏。
解决
- 制作 secedit.sdb 文件的备份。
- 打开命令提示符(单击“开始”、“运行”,然后键入“cmd”。按 Enter。)
- 运行
esentutl /p %windir%\security\database\secedit.sdb
并按 Enter。出现“修复”警告时,单击“确定”。等待修复完成。 - 返回“添加 Windows 组件”对话框,确保指定的文件夹是您的 Windows 安装文件夹,然后单击“确定”。IIS 组件的安装应正常完成。