Web设置 - 安装错误

时间:2011-12-02 16:12:50

标签: asp.net iis-6 windows-installer windows-server-2003 crystal-reports-2008

我正在尝试在x86-64bit架构中安装在Visual Studio 2008中生成的Web安装项目,当我尝试在Windows 2003服务器x64中安装它时,说无法安装并且安装程序退出。

我检查了管理工具中的事件日志,我发现了一般错误消息。后来在msiexec.exe中使用详细日志记录我发现了这个:

(UNKNOWN)     La acción se inició a las 08:32:22: WEBCA_EvaluateURLsNoFail.
(UNKNOWN)     INFO : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: Custom Action is starting...
(UNKNOWN)     INFO : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: CoInitializeEx - COM initialization Apartment Threaded...
(UNKNOWN)     INFO : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: Enumerating table using SQL statement: 'SELECT * FROM `_UrlToDir`'
(UNKNOWN)     INFO : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: Calling MsiGetActiveDatabase...
(UNKNOWN)     INFO : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: MsiDatabaseOpenViewW - Prepare Database to view table...
(UNKNOWN)     INFO : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: TMsiViewExecute - Open Database view on table...
(UNKNOWN)     INFO : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: MsiRecordGetStringW - Fetching value...
(UNKNOWN)     INFO : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: MsiRecordGetStringW - Getting value from column '1'...
(UNKNOWN)     INFO : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: Getting App Root for Url Property: TARGETURL
(UNKNOWN)     INFO : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: Getting AppRoot From Url key 'TARGETURL'.
(UNKNOWN)     INFO : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: MsiGetPropertyW - Determine size of property 'TARGETSITE'
(UNKNOWN)     INFO : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: Property 'TARGETSITE' retrieved with value ''.
(UNKNOWN)     INFO : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: RESULT:
(UNKNOWN)     ERROR : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: FAILED: -2147024809
(UNKNOWN)     ERROR : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: FAILED: -2147024809
(UNKNOWN)     ERROR : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: FAILED: -2147024809
(UNKNOWN)     ERROR : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: FAILED: -2147024809
(UNKNOWN)     ERROR : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: FAILED: -2147024809
(UNKNOWN)     ERROR : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: FAILED: -2147024809
(UNKNOWN)     ERROR : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: FAILED: -2147024809
(UNKNOWN)     ERROR : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: Custom Action failed with code: '87'
(UNKNOWN)     INFO : [12/02/2011 08:32:22:609] [EvaluateURLsNoFail ]: Custom Action completed with return code: '87'
(UNKNOWN)     DEBUG: Error 2769: Custom Action WEBCA_EvaluateURLsNoFail did not close 1 MSIHANDLEs. 

任何想法如何解决这个问题?

更新(特定问题来源)

查询SELECT * FROM '_UrlToDir'检索IIS元数据库配置LM/W3SVC/1/ROOT/3001的默认值。问题是MSI Websetup项目默认网站默认网站1为您的元数据库中的ID,如果由于任何原因此配置不存在或已损坏,则会发生错误。

在我的特定情况下,我的问题发生了,因为我已经安装了Crystal Reports 2008 Runtime,后来在我的生产Web服务器中安装了WSUS服务器。

扣除所发生的事情(因为我没有进一步的信息),WSUS将我当前正在运行的Web服务器配置实例移动到另一个id(不知道为什么需要这样做),并且勉强没有检测到配置将Crystal Reports安装程序插入到配置数据库中,结果是将我以前的网站部分配置迁移到另一个ID,WSUS插入了自己的ID(BTW Not id 1)并将id 1保留为配置信息损坏。

可能的解决方案

使用IIS 6资源工具包中包含的元数据库资源管理器查找无效ID并尝试删除它,然后使用IIS管理员脚本尝试使用以下命令将运行配置移回标识1

CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs STOP_SERVER W3SVC/[OLD_ID]
CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs MOVE W3SVC/[OLD_ID] W3SVC/[NEW_ID]
CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs START_SERVER W3SVC/[NEW_ID]

我真的害怕此刻有些事情变得非常丑陋,我将在未来的某个时刻尝试,但不是现在。

1 个答案:

答案 0 :(得分:0)

使用IIS 6资源工具包中包含的配置数据库资源管理器找到无效ID并将其删除,然后使用IIS管理员脚本使用以下命令将运行配置移回ID 1:

CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs STOP_SERVER W3SVC/[OLD_ID]
CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs MOVE W3SVC/[OLD_ID] W3SVC/[NEW_ID]
CSCRIPT %SYSTEMDRIVE%\Inetpub\AdminScripts\adsutil.vbs START_SERVER W3SVC/[NEW_ID]

我测试了这个并且像魅力一样工作!!!

这解决了网络安装问题