2010-02-19 3 views
0

WiX에서 일부 webcert를 IIS6에서 IIS7로 마이그레이션하려고하는데 오류가 발생합니다. 그러나 설치 로그 파일에서 실패한 명령을 복사하여 붙여 넣으면 성공합니다. 다음은 오류를 나타내는 로그 파일 섹션입니다. 처음 두 개의 appcmds가 성공하지만 마지막으로 마이그레이션하는 명령은 실패합니다.inetsrv appcmd를 실행하는 동안 WiX 설치 프로그램에서 CAQuietExec 오류가 발생합니다.

Action 10:43:52: UnlockModulesCmd. 
Action start 10:43:52: UnlockModulesCmd. 
MSI (s) (80:44) [10:43:52:631]: PROPERTY CHANGE: Adding QtExecCmdLine property. Its value is '"C:\Windows\system32\inetsrv\appcmd" unlock config -section:system.webServer/modules'. 
Action ended 10:43:52: UnlockModulesCmd. Return value 1. 
MSI (s) (80:44) [10:43:52:641]: Doing action: UnlockModules 
Action 10:43:52: UnlockModules. Migrating to IIS7 
Action start 10:43:52: UnlockModules. 
MSI (s) (80:44) [10:43:52:691]: Creating MSIHANDLE (834) of type 790542 for thread 2116 
MSI (s) (80:B8) [10:43:52:691]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI72FF.tmp, Entrypoint: CAQuietExec 
MSI (s) (80!7C) [10:43:52:771]: Creating MSIHANDLE (835) of type 790541 for thread 892 
MSI (s) (80!7C) [10:43:52:771]: Creating MSIHANDLE (836) of type 790531 for thread 892 
MSI (s) (80!7C) [10:43:52:781]: Closing MSIHANDLE (836) of type 790531 for thread 892 
MSI (s) (80!7C) [10:43:52:781]: PROPERTY CHANGE: Deleting QtExecCmdLine property. Its current value is '"C:\Windows\system32\inetsrv\appcmd" unlock config -section:system.webServer/modules'. 
MSI (s) (80!7C) [10:43:53:752]: Creating MSIHANDLE (837) of type 790531 for thread 892 
CAQuietExec: Unlocked section "system.webServer/modules" at configuration path "MACHINE/WEBROOT/APPHOST". 
MSI (s) (80!7C) [10:43:53:762]: Closing MSIHANDLE (837) of type 790531 for thread 892 
MSI (s) (80!7C) [10:43:53:762]: Closing MSIHANDLE (835) of type 790541 for thread 892 
MSI (s) (80:B8) [10:43:53:762]: Closing MSIHANDLE (834) of type 790542 for thread 2116 
Action ended 10:43:53: UnlockModules. Return value 1. 
MSI (s) (80:44) [10:43:53:772]: Doing action: UnlockHandlersCmd 
Action 10:43:53: UnlockHandlersCmd. 
Action start 10:43:53: UnlockHandlersCmd. 
MSI (s) (80:44) [10:43:53:792]: PROPERTY CHANGE: Adding QtExecCmdLine property. Its value is '"C:\Windows\system32\inetsrv\appcmd" unlock config -section:system.webServer/handlers'. 
Action ended 10:43:53: UnlockHandlersCmd. Return value 1. 
MSI (s) (80:44) [10:43:53:792]: Doing action: UnlockHandlers 
Action 10:43:53: UnlockHandlers. Migrating to IIS7 
Action start 10:43:53: UnlockHandlers. 
MSI (s) (80:44) [10:43:53:862]: Creating MSIHANDLE (838) of type 790542 for thread 2116 
MSI (s) (80:08) [10:43:53:862]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI7780.tmp, Entrypoint: CAQuietExec 
MSI (s) (80!60) [10:43:54:123]: Creating MSIHANDLE (839) of type 790541 for thread 2144 
MSI (s) (80!60) [10:43:54:123]: Creating MSIHANDLE (840) of type 790531 for thread 2144 
MSI (s) (80!60) [10:43:54:123]: Closing MSIHANDLE (840) of type 790531 for thread 2144 
MSI (s) (80!60) [10:43:54:133]: PROPERTY CHANGE: Deleting QtExecCmdLine property. Its current value is '"C:\Windows\system32\inetsrv\appcmd" unlock config -section:system.webServer/handlers'. 
MSI (s) (80!60) [10:43:54:493]: Creating MSIHANDLE (841) of type 790531 for thread 2144 
CAQuietExec: Unlocked section "system.webServer/handlers" at configuration path "MACHINE/WEBROOT/APPHOST". 
MSI (s) (80!60) [10:43:54:503]: Closing MSIHANDLE (841) of type 790531 for thread 2144 
MSI (s) (80!60) [10:43:54:503]: Closing MSIHANDLE (839) of type 790541 for thread 2144 
MSI (s) (80:08) [10:43:54:513]: Closing MSIHANDLE (838) of type 790542 for thread 2116 
Action ended 10:43:54: UnlockHandlers. Return value 1. 
MSI (s) (80:44) [10:43:54:634]: Doing action: MigrateIIS7Cmd 
Action 10:43:54: MigrateIIS7Cmd. 
Action start 10:43:54: MigrateIIS7Cmd. 
MSI (s) (80:44) [10:43:54:644]: PROPERTY CHANGE: Adding QtExecCmdLine property. Its value is '"C:\Windows\system32\inetsrv\appcmd" migrate config "Default Web Site/sdportal"'. 
Action ended 10:43:54: MigrateIIS7Cmd. Return value 1. 
MSI (s) (80:44) [10:43:54:654]: Doing action: MigrateIIS7 
Action 10:43:54: MigrateIIS7. Migrating to IIS7 
Action start 10:43:54: MigrateIIS7. 
MSI (s) (80:44) [10:43:54:704]: Creating MSIHANDLE (842) of type 790542 for thread 2116 
MSI (s) (80:E8) [10:43:54:704]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI7ADE.tmp, Entrypoint: CAQuietExec 
MSI (s) (80!14) [10:43:54:714]: Creating MSIHANDLE (843) of type 790541 for thread 2068 
MSI (s) (80!14) [10:43:54:724]: Creating MSIHANDLE (844) of type 790531 for thread 2068 
MSI (s) (80!14) [10:43:54:724]: Closing MSIHANDLE (844) of type 790531 for thread 2068 
MSI (s) (80!14) [10:43:54:724]: PROPERTY CHANGE: Deleting QtExecCmdLine property. Its current value is '"C:\Windows\system32\inetsrv\appcmd" migrate config "Default Web Site/sdportal"'. 
MSI (s) (80!14) [10:43:55:755]: Creating MSIHANDLE (845) of type 790531 for thread 2068 
CAQuietExec: Error 0x80070001: Command line returned an error. 
MSI (s) (80!14) [10:43:55:765]: Closing MSIHANDLE (845) of type 790531 for thread 2068 
MSI (s) (80!14) [10:43:55:765]: Creating MSIHANDLE (846) of type 790531 for thread 2068 
CAQuietExec: Error 0x80070001: CAQuietExec Failed 
MSI (s) (80!14) [10:43:55:775]: Closing MSIHANDLE (846) of type 790531 for thread 2068 
MSI (s) (80!14) [10:43:55:775]: Closing MSIHANDLE (843) of type 790541 for thread 2068 
MSI (s) (80:E8) [10:43:55:775]: Closing MSIHANDLE (842) of type 790542 for thread 2116 
Action ended 10:43:55: MigrateIIS7. Return value 1. 

다음은 다음과 같습니다. 설치 관리자가 관리자로 실행되도록 요구함으로써 appcmd를 작동시킬 수있었습니다. 최근에 실패한 추가 사용자 정의 명령을 추가했습니다. 다음은 로그의 관련 부분입니다. 다른 appcmd.exe 명령은 정상적으로 실행됩니다. 실패한 appcmd를 로그에서 명령 줄 프롬프트로 복사하고 지나치면 제대로 작동합니다. 이견있는 사람?

MSI (s) (1C:B0) [15:56:46:510]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIB74D.tmp, Entrypoint: CAQuietExec 
MSI (s) (1C!B8) [15:56:46:570]: PROPERTY CHANGE: Deleting QtExecCmdLine property. Its current value is '"C:\Windows\system32\inetsrv\appcmd" migrate config "Default Web Site/sdportal"'. 
CAQuietExec: Error 0x80070001: Command line returned an error. 
CAQuietExec: Error 0x80070001: CAQuietExec Failed 
Action ended 15:56:47: MigrateIIS7. Return value 1. 
MSI (s) (1C:14) [15:56:47:001]: Doing action: DisableRapidFailCmd 
Action 15:56:47: DisableRapidFailCmd. 
Action start 15:56:47: DisableRapidFailCmd. 
MSI (s) (1C:14) [15:56:47:011]: PROPERTY CHANGE: Adding QtExecCmdLine property. Its value is '"C:\Windows\system32\inetsrv\appcmd" set apppool "WssAppPool" /failure.rapidFailProtection:false'. 
Action ended 15:56:47: DisableRapidFailCmd. Return value 1. 
MSI (s) (1C:14) [15:56:47:021]: Doing action: DisableRapidFail 
Action 15:56:47: DisableRapidFail. Disabling Rapid Fail 
Action start 15:56:47: DisableRapidFail. 
MSI (s) (1C:30) [15:56:47:061]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIB988.tmp, Entrypoint: CAQuietExec 
MSI (s) (1C!64) [15:56:47:141]: PROPERTY CHANGE: Deleting QtExecCmdLine property. Its current value is '"C:\Windows\system32\inetsrv\appcmd" set apppool "WssAppPool" /failure.rapidFailProtection:false'. 
CAQuietExec: APPPOOL object "WssAppPool" changed 
Action ended 15:56:47: DisableRapidFail. Return value 1. 
MSI (s) (1C:14) [15:56:47:502]: Doing action: ConfigureAppPoolLoggingCmd 
Action 15:56:47: ConfigureAppPoolLoggingCmd. 
Action start 15:56:47: ConfigureAppPoolLoggingCmd. 
MSI (s) (1C:14) [15:56:47:522]: PROPERTY CHANGE: Adding QtExecCmdLine property. Its value is '"C:\Windows\system32\inetsrv\appcmd" set config /section:applicationPools /[name='WssAppPool'].recycling.logEventOnRecycle:Memory,Schedule,Requests,Time,PrivateMemory'. 
Action ended 15:56:47: ConfigureAppPoolLoggingCmd. Return value 1. 
MSI (s) (1C:14) [15:56:47:522]: Doing action: ConfigureAppPoolLogging 
Action 15:56:47: ConfigureAppPoolLogging. Configuring App Pool Logging 
Action start 15:56:47: ConfigureAppPoolLogging. 
MSI (s) (1C:C0) [15:56:47:562]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIBB7E.tmp, Entrypoint: CAQuietExec 
MSI (s) (1C!A8) [15:56:47:602]: PROPERTY CHANGE: Deleting QtExecCmdLine property. Its current value is '"C:\Windows\system32\inetsrv\appcmd" set config /section:applicationPools /[name='WssAppPool'].recycling.logEventOnRecycle:Memory,Schedule,Requests,Time,PrivateMemory'. 
CAQuietExec: ERROR (message:Unknown attribute ".recycling.logEventOnRecycle". Replace with -? for help.) 
CAQuietExec: Error 0x80070585: Command line returned an error. 
CAQuietExec: Error 0x80070585: CAQuietExec Failed 

답변

0

This is what I found wix-users 메일 아카이브. 그것은 매우 유사한 문제인 것으로 보인다. Phil의 제안대로 사용자 지정 동작을 정의하십시오.

2

먼저 올바른 권한으로 실행되지 않으므로 UAC가 비활성화되어 있어도 CAQuietExec을 사용할 수 없습니다. CAQuietExec을 사용하지 않고 appcmd를 실행하기 만하면됩니다.

둘째, 여기 올바르게 수행하는 방법입니다 : 경우에 http://esmithy.net/2010/07/02/iis-configuration-with-wix-and-appcmd/

복사/붙여 넣기 블로그가 사라 :

<InstallExecuteSequence><Custom Action="ConfigureAppPools" Before="InstallFinalize"><![CDATA[NOT Installed AND VersionNT64 >= 600]]></Custom></InstallExecuteSequence> 

<CustomAction Id="ConfigureAppPools" Execute="deferred" Impersonate="no" Return="check" Directory="TARGETDIR" ExeCommand="[SystemFolder]inetsrv\appcmd set apppool /apppool.name:&quot;[APPPOOLNAME]&quot; /enable32BitAppOnWin64:true" /> 
관련 문제