エクスポート (0) 印刷
すべて展開

Web 配置 iisApp プロバイダー

更新日: 2010年1月

適用対象: Windows 7, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Vista, Windows XP

iisApp

iisApp プロバイダーは、ディレクトリのコンテンツをフォルダーと同期させ、そのフォルダーをアプリケーションとしてマークします。

msdeploy -verb:sync -source:iisApp=c:\Contoso -dest:iisApp="Site1/ContosoApp"

iisApp プロバイダーは、物理ディレクトリや、MySite/MyApp などの IIS Web アプリケーションの、コンテンツのダンプ、同期、またはアーカイブを実行します。このプロバイダーでは、指定したパスのすべてのコンテンツが処理されます。iisApp プロバイダーは、同期元がディレクトリであり、そのディレクトリを同期先でアプリケーションとして使用する場合に便利です。また、同期元のサイトまたはアプリケーションの物理ディレクトリが不明なときに、その構成データではなくコンテンツを取得する場合にも便利です。サイト パスまたはアプリケーション パスをプロバイダーに渡すことによって、証明書、アセンブリ、または IIS 構成データとは別にコンテンツを取得できます。

iisApp プロバイダーは、プロバイダー contentPathcreateAppdirPath、および filePath を使用して、その機能を実装します。詳細については、「Web 配置 contentPath プロバイダー」、「Web 配置 createApp プロバイダー」、「Web 配置 dirPath プロバイダー」、および「Web 配置 filePath プロバイダー」を参照してください。

引数

iisApp プロバイダーでは、次の引数を使用できます。

  • ディレクトリ パス (c:\mydirectory など)

  • サイト パス ("Default Web Site" や MySite など)

  • アプリケーション パス ("Default Web Site/MyApp" など)

lm/w3svc/<サイト ID> という形式の IIS 6.0 サイト パスまたはアプリケーション パスを使用できますが、前にスラッシュを付ける必要があります (例: /lm/w3svc/1)。スラッシュを付けなかった場合、最初の "lm" がサイト名として解釈されます。指定したパスにドライブが含まれている場合 (例: C:\)、Web 配置では、そのパスがディレクトリ パスであると見なされます。指定したパスに共有が含まれている場合 (例: \\server)、Web 配置は、そのパスがアプリケーション パスまたはサイト パスであると見なして、そのパスを物理パスにマップしようとします。UNC パスおよびマップされたネットワーク ドライブがサポートされます。%windir% のような環境変数はサポートされますが、ワイルドカード文字はサポートされません。パスにスペースが含まれている場合は、パスを二重引用符で囲む必要があります。末尾に円記号を使用することはできません。

noteメモ
./mypath や . のような相対パスは使用できません。

dump

dump 操作で、指定したパスがアプリケーションまたは Web サイトである場合は、アプリケーションまたは Web サイトのコンテンツのディレクトリ パスとファイル パスが再帰的に返されます。ディレクトリを指定した場合は、指定したディレクトリとそれに含まれるファイル パスが再帰的に返されます。-xml 操作設定を指定した場合は、属性情報を含む結果が XML 形式で返されます。

noteメモ
iisApp プロバイダーを dump 動詞と共に使用すると、contentPath プロバイダーを dump 動詞と共に使用した場合と同じ結果が得られます。

sync

sync 操作では、iisApp プロバイダーによって、指定した同期先サイトのフォルダーにコンテンツがコピーされ、同期先フォルダーがアプリケーションとしてマークされます。iisApp プロバイダーでサイトを作成することはできません。

Important重要
iisApp で指定した同期元が Web サイトである場合は、同期先がアプリケーションとしてマークされます。Web サイトとそれに関連する構成を同期させる場合は、appHostConfig プロバイダーを使用してください。

Important重要
iisApp プロバイダーでは、サーバーレベルまたはサイトレベルの既定の構成は同期されません。同期元と同期先の既定の構成が異なる場合、同期されたアプリケーションには、同期先のその親サイトのアプリケーション プールおよびその他の既定の構成が継承されます。

同期元のファイルやフォルダーが同期先に存在しない場合は、対応するファイルや属性を持つフォルダーとサブフォルダーが作成されます。同期先フォルダーが既に存在する場合は、同期元と一致しないオブジェクトのみが更新されます。そのため、ファイルやフォルダーが 1 つだけしか更新されない場合もあります。同期元に存在しないファイルが同期先にある場合は、削除されます。iisApp の同期元フォルダーと同期先フォルダーの名前は、同じでなくてもかまいません。同期元と異なる名前の既存の同期先フォルダーを指定した場合、同期先フォルダーの名前は同じままになりますが、同期先フォルダーのコンテンツは同期元のコンテンツに合わせて更新されます。同期元のパスを指定しなかった場合、コンテンツは同期されませんが、同期先がアプリケーションとしてマークされます。

Caution注意
sync 操作で同期先にアプリケーションを作成するには、呼び出し元が同期先に対する書き込みアクセス許可を持っている必要があります。

アクセス許可

IIS 7 で、アプリケーション パスを指定した場合は、常に iisApp プロバイダーが呼び出し元の権限を利用して ApplicationHost.config ファイルを読み取ります。ApplicationHost.config ファイルのプロパティを読み取るためのアクセス権があるユーザー アカウントの偽装が必要です。IIS 6.0 では、呼び出し元の権限を利用して MetaBase.xml ファイルを読み取ります。IIS 6.0 には偽装サービスがないので、アプリケーション パスを指定する場合は、管理者としてこのプロバイダーを実行しなければならないことがあります。

管理者以外のユーザー

管理者以外のユーザーは、iisApp プロバイダーを使用して IIS の構成に直接アクセスすることはできません。たとえば、管理者以外のユーザーは、次の 1 のコマンドは正常に実行できることもありますが、2 のコマンドではエラーが発生します。

  1. msdeploy -verb:dump -source:iisApp=c:\ServerDir1\UserAppDir

  2. msdeploy -verb:dump -source:iisApp="Site1/UserApp"

このような場合、管理者以外のユーザーでも IIS マネージャ ユーザーとしての適切なアクセス許可が委任されていれば、Web 配置ハンドラーの構文 ((computerName=<URL>) を使用できます。その例を次に示します。

msdeploy -verb:dump -dest:iisApp=c:\remotePath,computername=http://serverName/agent.mwd?Site=Site1/UserApp

ファイル所有権情報および includeAcls プロバイダー設定

既定では、iisApp プロバイダーで ACL、属性、および所有権情報は同期されません。これは、アクセス許可が、セキュリティ ID (SID) としてコピーされ、すべてのコンピューターで均一に機能するとは限らないためです。

アクセス許可とコンテンツの両方を同期させる必要がある場合は、任意で includeAcls プロバイダー設定を使用して sync 操作に ACL を含めることができます。既定では、includeAclsfalse に設定されています。includeAclstrue に設定すると、ACL が SID としてコピーされます。アクセス許可を正しく設定するには、ドメイン アカウントを使用するか、同期元と同期先の両方のコンピューターで SID が同じローカル アカウントを持っている必要があります。

sync 操作で includeAclstrue に設定されていると、同期先の親フォルダーでは同期前と同様にアクセス許可が継承され続けます。たとえば、次のコマンドでは、同期先にフォルダー c:\inetpub が既に存在する場合、その ACL は保持されますが、サブフォルダー c:\inetpub\wwwroot には、同期元で設定された ACL が適用されます。

msdeploy -verb:sync -source:iisApp=c:\inetpub\wwwroot -dest:iisApp=c:\inetpub\wwwroot,computerName=Server1

これは、ディレクトリ パスで、同期対象の …\wwwroot や特定のディレクトリの上位に複数のレベルが含まれることがあるためです。\wwwroot のアクセス許可と属性は必ず置き換えられますが、これより上位のアクセス許可と属性は、親フォルダーが存在していない場合にのみ設定されます。同様に、同期先に親ディレクトリが既に存在する場合、同期先に作成されたファイルは、同期先の親ディレクトリから ACL を継承します。

noteメモ
同期元または同期先が追加パスのないドライブ文字 (例: "E:") の場合、E: ドライブのコンテンツが同期されますが、ドライブ自体にはアクセス許可が設定されません。

Caution注意
FAT ファイル システムで NTFS ファイル システムの ACL を保持することはできないので、NTFS ファイル システムから FAT ファイル システムへの同期は行わないでください。そのような同期を行っても、警告は表示されません。どのような場合にも Windows Server® 2008 (および IIS 7) を FAT32 ファイル システムにインストールすることはできません。セキュリティ上の理由により、FAT ファイル システムでの IIS 6.0 の使用は推奨されません。

カスタム プロバイダーの設定

iisApp プロバイダーでは、4 つのカスタム プロバイダー設定を任意で使用できます。

enable32BitAppOnWin64

enable32BitAppOnWin64 プロバイダー設定では、同期先のアプリケーション プールの enable32BitAppOnWin64 属性が、指定した true または false 設定に一致するかどうかがチェックされます。指定した値は、比較のみに使用され、設定はされません。同期先のアプリケーション プールの属性が指定した値に一致しない場合、同期は失敗します。このプロバイダー設定に既定値はないため、値を指定しないと何も起こりません。enable32BitAppOnWin64 属性は、IIS 6.0 またはそれ以前のバージョンの IIS には適用されません。

使用法: ,enable32BitAppOnWin64=<BOOL>

<BOOL> には、true または false を指定します。同期先のアプリケーション プールの enable32BitAppOnWin64 属性が true である必要がある場合は True、同期先の属性が false である必要がある場合は false を指定します。

managedPipelineMode

managedPipelineMode プロバイダー設定では、同期先のアプリケーション プールの managedPipelineMode 属性が、指定した設定 (Integrated または Classic) に一致するかどうかがチェックされます。指定した値は、比較のみに使用され、設定はされません。同期先のアプリケーション プールの属性が指定した値に一致しない場合、同期は失敗します。このプロバイダー設定に既定値はないため、値を指定しないと何も起こりません。managedPipelineMode 属性は、IIS 6.0 またはそれ以前のバージョンの IIS には適用されません。

使用法: ,managedPipelineMode=[Integrated | Classic]

managedRuntimeVersion

managedRuntimeVersion プロバイダー設定では、同期先のアプリケーション プールの managedRuntimeVersion 属性が、指定した .NET framework バージョン ("v2.0" など) に一致するかどうかがチェックされます。指定した値は、比較のみに使用され、設定はされません。同期先のアプリケーション プールの属性が指定した値に一致しない場合、同期は失敗します。このプロバイダー設定に既定値はないため、値を指定しないと何も起こりません。managedRuntimeVersion 属性は、IIS 6.0 またはそれ以前のバージョンの IIS には適用されません。

使用法: ,managedRuntimeVersion=v<versionNumber>

skipAppCreation

skipAppCreation プロバイダー設定では、sync 操作の同期先をアプリケーションとしてマークするかどうかを任意で指定します。

使用法: ,skipAppCreation=<BOOL>

<BOOL> には、true または false を指定します。sync 操作の同期先をアプリケーションとしてマークしない場合は True に設定し、それ以外の場合は false に設定します。既定値は false です。

skipAppCreationtrue に設定すると、同期先フォルダーが IIS アプリケーションとしてマークされることはありませんが、同期元のコンテンツとプロパティは同期先にコピーされます。

使用例

1) 同期元フォルダー "C:\NewAppSource" のすべてのコンテンツを "Default Web Site" のホーム ディレクトリの "My New App" というフォルダーと同期させ、そのフォルダーを IIS のアプリケーションとしてマークする場合。新しいアプリケーションでは、その親アプリケーションからアプリケーション プールの設定が継承されます。この例では、親は、既定の Web サイトのルート アプリケーションです。

msdeploy -verb:sync -source:iisApp=c:\NewAppSource -dest:iisApp="Default Web Site/My New App"

2) 例 1) と同様にコンテンツを同期し、"My Site/My Old App" アプリケーションの物理的な場所から同期元のコンテンツを取得する場合。

msdeploy -verb:sync -source:iisApp="My Site/My Old App" -dest:iisApp="default web site/My New App"

3) コンテンツが同期されないように同期元のパスを空のままにして、同期先をアプリケーションとしてマークする場合。

msdeploy -verb:sync -source:iisApp -dest:iisApp="Default Web Site/My New App"

4) 同期元フォルダー "C:\OldApp" からホーム ディレクトリ "MySite" の "FutureApp" というフォルダーにコンテンツを同期させて、フォルダーをアプリケーションとしてマークする場合。

msdeploy -verb:sync -source:iisApp=c:\OldApp -dest:iisApp="MySite/FutureApp",skipAppCreation=true

関連項目

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました

コミュニティの追加

追加
表示:
© 2014 Microsoft