2012-10-01 3 views
1

IIS에 WebApplication을 설치하고 있습니다. 설치가 정상적으로 작동하지만 제품을 제거하려고하면 WebApplication이 IIS에 남아 있습니다. 모든 파일은 제거되지만 WebApp는 여전히 IIS 관리자 콘솔에 표시됩니다. 이 내 구성 요소 코드 :Wix WebApplicationExtension은 통합되지 않은 웹 응용 프로그램을 방지합니다.

<!-- WebServices Virtual Directory --> 
<Component Id="IWSVirtualDirectory" Guid="{XXXX...}" DiskId="1" KeyPath="yes" Win64="no"> 
    <!-- Virtual directory --> 
     <iis:WebVirtualDir Id="IWSWebVirtualDirectory" Alias="[IWS_VIRTUAL_DIRECTORY_NAME]" Directory="MyWebServices" WebSite="IWSTargetWebSite"> 
     <!-- Web Application --> 
     <iis:WebApplication Id="IWSWebApplication" Name="MyWebServices-$(var.MAJOR).$(var.MINOR).3" WebAppPool="IWSWebAppPool"> 
      <!-- ISAPI filter --> 
      <iis:WebApplicationExtension Extension="dll" CheckPath="yes" Script="yes" Executable="[#FTIRWWSIsapi_dll]" Verbs="GET,HEAD,POST" /> 
      <iis:WebApplicationExtension Extension="srf" CheckPath="yes" Script="yes" Executable="[#FTIRWWSIsapi_dll]" Verbs="GET,HEAD" /> 
     </iis:WebApplication> 
     <!-- Properties --> 
     <iis:WebDirProperties Id="IWSWebDirProperties" Read="yes" LogVisits="yes" Index="yes" Script="yes" Execute="no" DefaultDocuments="FTIRWWS.htm" BasicAuthentication="no" PassportAuthentication="no" DigestAuthentication="no" IIsControlledPassword="no" WindowsAuthentication="yes" /> 
     </iis:WebVirtualDir>        
    </Component> 

편집 : 그 그냥 응용 프로그램에 의해 제공되는 확장을 제기 핸들러를 매핑하는 두 <iis:WebApplicationExtension />을 삭제하면 는 이상하게도, 웹 응용이 실제로 제거됩니다. 왜 핸들러 맵핑으로 인해 WebApplication이 제거되지 않을까요 ?? Windows Installer 로그와 어떤 차이가 있는지 확인할 수있는 로그가 있습니까?

답변

1

제거시 가상 디렉터리 별칭 (응용 프로그램 이름)을 정의하는 데 사용하는 속성이 제대로 설정되지 않았습니다. 설치를 실행하면 IWS_VIRTUAL_DIRECTORY_NAME을 어떻게 든 설정합니다 (사용자, 논리 등을 묻습니다).하지만이 속성을 제거하면 WiX가 제거시 제거 할 가상 디렉터리를 찾을 수 없습니다.

사람들이 흔히 저지르는 실수입니다. 어떻게 든 IWS_VIRTUAL_DIRECTORY_NAME의 값을 저장해야합니다. 가장 잘 알려진 접근 방식은 is described by Rob Mensching and is called "Remember the property" pattern입니다. 이 기사의 제안을 따르면 설치 및 제거 사이에 속성을 저장할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 나 자신이 부끄러워서, 질문에 중요한 정보를 포함하는 것을 잊어 버렸습니다. 그것은 제목에서 언급되었지만 질문의 몸에서는 언급되지 않았습니다. 또한 'IWS_VIRTUAL_DIRECTORY_NAME'에 대해서는 'MyService' '와 항상 동일한 값을 갖습니다. 따라서 별칭은 항상 설정됩니다. – Herno