2013-01-15 9 views
6

私はVS2012にWebアプリケーションパッケージを使用して公開しているWebアプリケーションプロジェクトを持っています。このパッケージに、アプリケーションプール設定を含めるには、 IIS app-poolを作成し、新しく作成したアプリケーションを割り当てます。VS2012アプリケーションプールを作成するためのWeb配布パッケージ

私はこのプロジェクトがIISインスタンス(IIS Expressではなく)を使用するように設定されているのにIISプロジェクトの設定がでない場合に利用可能なこのWebプロジェクトで使用されるアプリケーションプールの設定を熟知しています。プロジェクトの一部したがって、ソース管理されていません。誰かがIISを慎重に設定していないマシンにデプロイメントパッケージをビルドするとどうなりますか?理想的ではない。

それ以外の場合は、AppPoolの設定をWebデプロイメントパッケージに入れることはできますか?私はappPoolConfigプロバイダがIIS7 +であることを理解しています。私は過去にこの問題に対して頭を抱えていましたが、決して解決策を見いだせませんでした。 18ヵ月後、新しいVisualStudioバージョンと新しいWeb公開パイプラインが用意されていますが、これに対処する新しいオプションがありますか?私が最初にこの問題に取り組んだとき、私が忘れた何か?

編集

OK、私は、オプションとして、次のことを見ている:

  1. は、IISのインスタンスから設定を同期する私のプロジェクトを設定します。前述したように、私はこの設定のファンではなく、をプロジェクトのの外側に置きます。つまり、ビルド+パブリッシュするように環境を細かく設定する必要があります。加えて、私は含まれたくない他のIIS設定に沿ってドラッグします。
  2. web-publishing-pipeline(WPP)に何かを注入して、archive.xmlを変更します。私は過去にこれを試してみたところ、成功は限られていました。 1つの問題は、パイプラインがarchive.xmlファイルで直接作業するのと正確に協調していないということです。もう1つの問題は、MSDeploy.MSDeployProviderOptionsのような、いくつかのBase64でエンコードされたバイナリを持つような、何をそこに置くべきかわからない。
  3. 私がしたいことができる既存の「プロバイダ」を探します。私はここで運がうまくいかないかもしれませんが、appPoolConfigプロバイダは、設定のXMLファイルではなく、IISを読み書きするだけのようです。誰か他に知っていますか?
  4. マニフェスト出力エントリを生成するために私自身の「プロバイダ」を作成します。私は確信していません、既存のプロバイダーの名前を使ってマニフェストに書き込むカスタムプロバイダーを書くことは可能でしょうか?のように、MyCustomPoolProviderマニフェストにappPoolConfigセクションを書き込みますか?これは、うまく動作しないかもしれない痛みを伴う可能性のある運動のように聞こえる。私はまだMSDeploy.MSDeployProviderOptionsに入るもののエンコーディングを理解する必要がありますか?

私が達成しようとしているWeb Deployの根本的な障害は、「プロバイダー」にどのくらい厳密に依存しているかのように感じます。既存のプロバイダは、主にIIS同期のために設計されており、ではなく、の主要な開発と公開が行われています。このようなプロバイダーの中には、という比較的のものがMSBuild経由で簡単に取り込まれるものもありますが、その大部分はIISからデータを取得することを主張しています。

答えて

1

appPoolConfigプロバイダーの理解では、アプリケーションプール間での同期のみが可能であり、構成を直接提供することはできません。あなたが潜在的に行うことができるのは、問題のappPoolのコピーをpackageフォーム(つまり、msdeploy -verb:sync -source:appPoolConfig=PoolName -dest:package=apppool.zip)、パイプラインをハイジャックして、MSDeploy呼び出しがアプリケーションコンテンツをパッケージに追加し、そこに既存のコンテンツを残すようにします。

また、パッケージを別々に保管し、MSDeployへの別の呼び出しで展開することもできます。

FYI MSDeploy.MSDeployProviderOptionsは、パッケージ化されたときにプロバイダに提供されるパラメータのコード化されたバージョンです。たとえば、-source:dirPath=c:\,ignoreErrors=0x10293847 -dest:package=package.zipは、ignoreErrorsの値をパッケージ化します。

+0

'MSDeploy.MSDeployProviderOptions'のエンコードパターンの手掛かりはありますか? WPPパイプラインに簡単に挿入できるものではありませんが、 'archive.xml 'の内容を直接調整できるという柔軟性があります。プロバイダーを忘れて、必要なxmlを生成し、バンドルし、展開するのに適したツールを作ることができます。 – Snixtor

+0

バンドルされたarchive.xmlの形式は未定義です。ただし、WPDがMSDeployを呼び出す前に、ソースマニフェスト*に直接要素(マイナスのMSDeployProviderOptions)を挿入することができます。 –

+0

ソースマニフェストは、プロバイダ*読み取り*オプションのコレクションである必要がありますが、それはありませんか?で述べたように、ソースマニフェストのappPoolConfigセクションは引き続きIISから試して読み込むつもりです。これはプロバイダの性質に過ぎません。 – Snixtor

関連する問題