0

Web プラットフォーム インストーラーを使用してインストールした場合、 runCommand プロバイダーを MS Deploy パッケージで動作させるにはどうすればよいですか?Manifest.xml

カスタム フィード経由で Web Platform Installer によってインストール可能な簡単なテスト MS Web Deploy パッケージを構築しようとしています。Manifest.xmlファイルrunCommandでプロバイダーを使用しようとしています。

<?xml version="1.0" encoding="utf-8" ?>
<msDeploy.iisApp>
  <iisApp path="IISWSGISampleApp" />
  <runCommand path="set" />
</msDeploy.iisApp>

は、コマンドが実行される環境を出力するためだけに使用されますが、さまざまな 値setに対しては機能しません。pathWeb Platform Installer を使用して任意のpath属性でパッケージをインストールすると、同じエラーが発生します。

[13:54:312]Source runCommand (set) does not match destination (set) differing in attributes (isSource). Update pending.
[13:54:315]Updating runCommand (set).
    Details:
    operationType: Update
    providerName: runCommand
    path: set
EXCEPTION: System.IO.FileNotFoundException: Could not find file '\\?\C:\Users\rpatterson\Documents\My Web Sites\IISWSGISampleApp'.
File name: '\\?\C:\Users\rpatterson\Documents\My Web Sites\IISWSGISampleApp'
...

<runCommand>から要素を削除すると、問題なくインストールされますManifest.xmlC:\Users\rpatterson\Documents\My Web Sites\IISWSGISampleAppまた、WebPI でエラーが表示されたときに が存在することも確認しました。また、\\?\スタイル パスはWindows で長いパスを安全に参照するためのものであることがわかったので、長いパスのサポートの一部が壊れている可能性があります。

Windows 7 Professional、Web Platform Installer 4.0、および Web Matrix 2.0 RC でこれらすべてを実行しており、その about ダイアログには次のように表示されます。

Version 2.0 RC
WebMatrix: 7.1.1587.0
IIS Express: 8.0.8298.0
.NET Framework: 4.0.30319.17379 built by: FXBETAREL
Web Deploy: 7.1.1516.0
SQL Server Compact: 4.0.8854.1
Web Platform Installer: 7.1.1586.1
ASP.NET Web Pages: 2.0.20505.0
ASP.NET Web Pages: 1.0.20105.407

このすべての背後にあるコードはGitHub の IISWSGI にあります。このコミットを使用してテストしてください。私が使用している環境を再現するには、IISWSGI のドキュメントを参照してください。

4

2 に答える 2

1

runCommandマシンを再起動し、WebPIを使用してアプリをインストールする以外に何もせずにエラーを再現できた後、エラーなしで使用できました。さらにテストした後、次の方法でエラーを再現できます。

  • マシンを再起動します
  • WebPIを使用してアプリをインストールします
  • WebPIを終了します
  • WebPIを使用してアプリを再インストールします(再起動せずに)

次に、マシンを再起動すると、WebPIを使用してアプリを再度インストールできます。IOW、WebPIには、マシンを再起動せずに2回起動できないというバグがあるようです。

于 2012-10-10T13:30:41.123 に答える
0

setコマンドを.bat/に移動し.cmd、それを のパスとして参照してみてくださいrunCommandfile に引数を渡さない限り、ファイルはパッケージに含まれ、他の場所でパッケージを同期するときに実行されます。

于 2012-10-08T11:00:29.590 に答える