简体   繁体   English

Web设置-安装错误

[英]Web Setup - Installation Error

I'm trying to install a web setup project generated in Visual studio 2008 in x86-64bit architecture and when i try to install it in a Windows 2003 server x64 says that cannot be installed and the setup exits. 我正在尝试在x86-64位体系结构中安装Visual Studio 2008中生成的Web安装项目,当我尝试在Windows 2003服务器中安装它时,x64表示无法安装并且安装退出。

I checked the event log in Administrative tools and i found a general error message. 我在管理工具中检查了事件日志,并发现了一条常规错误消息。 later using verbose logging in msiexec.exe i found this: 后来在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. 

any ideas how to workaround this ? 任何想法如何解决此问题?

Update (specific issue source) 更新(特定问题源)

The query SELECT * FROM '_UrlToDir' retrieves the default values for the IIS metabase configuration LM/W3SVC/1/ROOT/3001 . 查询SELECT * FROM '_UrlToDir'检索IIS元数据库配置LM/W3SVC/1/ROOT/3001的默认值。 the problem is taht MSI Websetup projects ALLWAYS ASUMES that the default website has 1 as id in your metabase, if by any reason this config doesn't exists or it's corrupted then the error occurs. 问题是,MSI Websetup项目始终认为默认网站的元数据库中的ID为1 ,如果由于某种原因该配置不存在或已损坏,则会发生此错误。

In my specific case my problems occurred because i have installed Crystal Reports 2008 Runtime and later installed a WSUS server in my production web server. 在我的特定情况下,发生问题是因为我已经安装了Crystal Reports 2008 Runtime,后来又在生产Web服务器中安装了WSUS服务器。

Deducting what happened (because i don't have further information), WSUS moved my current running web server configuration instance to another id (don't know why need to do this), and obiously didn't detected the configuration that the Crystal Reports installer inserted into metabase, the result was a partial config migration of my former web site into another id, WSUS inserted his own id (BTW Not id 1 ) and keep the id 1 with a corrupted config information. 扣除发生的情况(因为我没有更多信息),WSUS将我当前正在运行的Web服务器配置实例移动到另一个ID(不知道为什么需要这样做),并且顽皮地没有检测到Crystal Reports的配置。将安装程序插入元数据库,结果是将我以前的网站的部分配置迁移到另一个ID,WSUS插入了自己的ID(BTW不是ID 1 ),并使用已损坏的配置信息保留ID 1

Possible solution 可能的解决方案

Using the metabase explorer included in IIS 6 resource kit to find the invalid ID and try to delete it, then using the IIS administrator scripts try to move the running configuration back to the id 1 using the following command: 使用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]

I'm really afraid that something goes really ugly at this point, i will try it at some point in the future but not now. 我真的很害怕这时有些丑陋的事情,我会在将来但不是现在的某个时候尝试一下。

Using the metabase explorer included in IIS 6 resource kit find the invalid ID and delete it, then using the IIS administrator scripts move the running configuration back to the id 1 using the following command: 使用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]

i tested this and worked like a charm!!! 我测试了这一点,并像一个魅力一样工作!!!

this fixed the webinstallation problem 这解决了webinstallation问题

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM