1

IIS に WebApplication をインストールしています。インストールは正常に実行されていますが、製品をアンインストールしようとすると、WebApplication が IIS に残されます。すべてのファイルが削除されますが、WebApp は引き続き IIS マネージャー コンソールに表示されます。これは私のコンポーネントコードです:

<!-- 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 />編集:奇妙なことに、アプリケーションによって提供されるファイル拡張子にハンドラーをマッピングするだけの2つを削除すると、WebApplicationは実際に削除されます。ハンドラー マッピングによって WebApplication のアンインストールが妨げられるのはなぜですか?? Windows インストーラーのログとは別に、何が起こっているかを確認するためのログはありますか?

4

1 に答える 1

1

仮想ディレクトリ エイリアス (アプリケーション名) の定義に使用するプロパティが、アンインストール時に正しく設定されていません。インストールを実行するとき、おそらくIWS_VIRTUAL_DIRECTORY_NAME何らかの方法で設定します (ユーザーに尋ねる、いくつかのロジックなど)。しかし、アンインストール時にこのプロパティは設定されず、WiX はアンインストール時に削除する仮想ディレクトリを見つけることができません。

これは、人々が犯しがちなよくある間違いです。IWS_VIRTUAL_DIRECTORY_NAME何らかの形で値を保存する必要があります。最もよく知られているアプローチは、Rob Mensching によって説明されており、「Remember the property」パターンと呼ばれています。その記事の提案に従うと、インストールとアンインストールの間にプロパティを保存できます。

于 2012-10-02T05:36:50.393 に答える