1

Web展開パッケージを介してIIS7.5サーバーに展開したいVS2010WCFサービスソリューションがあります。WCFサービスプロジェクトのビルド時にWeb展開パッケージを生成してもらいたいのですが。Webデプロイ用のMSBuildターゲットを.csprojにインポートして、ビルド後にWebデプロイパッケージを開始する方法の他の例を見てきました。しかし、私は自分がこのようにできるかもしれないし、できないかもしれないことに頭を悩ませることはできません。

Webデプロイパッケージで、ターゲットサーバーにデプロイしたときに次のタスクを実行する必要があります。

  • NETWORKSERVICEIDを使用するターゲットフレームワーク4.0へのアプリプールを使用してターゲットサーバー上に新しいWebサイトを作成します
  • サイトバインディングを追加して、特定のポートでnet.tcpを有効にし、httpおよびnet.tcpプロトコルを有効にします
  • この新しいサイトの下に、特定のファイルシステムフォルダーを指すWebアプリケーションを作成します
  • .batファイルを実行して、http以外のWCFアクティベーションをサポートするいくつかのnet.tcp関連サービスを開始します

私がWebデプロイについて読んだことから、これらのいくつかはwebdeployマニフェストファイルを介して、特定のプロバイダーを含めて実行できます。私が理解していないのは、MSビルドのパッケージ化メカニズムに、マニフェストと値に含めるプロバイダーを渡すように指示していることです。私はWeb展開にかなり慣れていないので、これを解決するためのヘルプ/ポインターをいただければ幸いです。

4

3 に答える 3

1

最初の 3 つの項目はプロバイダーを使用して実行できます。これは、とプロパティの両方を にappHostConfig設定する場合に含める必要があります。IncludeIisSettingsUseIistrue

最後の項目は、runCommandプロバイダーを介して、マニフェストの一部として、またはpreSync/postSyncを介して実行できます。

WPP (MSDeploy の上にある MSBuild のもの) はpreSync/をサポートしていませんが、次を使用してプロバイダーを明示的postSyncに含めることができます。runCommandMsDeploySourceManifest

<!-- Create a WebProjectName.wpp.targets file in the root 
     of your web application (WebProjectName)
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
    <AfterAddContentPathToSourceManifest>
      $(AfterAddContentPathToSourceManifest);
      AddPostSyncProviders
    </AfterAddContentPathToSourceManifest>
  </PropertyGroup>

  <Target Name="AddPostSyncProviders">
    <MsDeploySourceManifest Include="runCommand">
      <Path>absolute path to exe on target machine</Path>
    </MsDeploySourceManifest>
  </Target>
</Project>

参考までに、この質問に従ってrunCommand、ターゲットマシンで絶対パスのみを実行できます。

于 2012-09-25T06:00:13.797 に答える
0

私が取ったアプローチは、MSBuild を使用してパッケージをビルドし、MSDeploy を使用してそれをサーバーにデプロイすることです。次のコマンド ラインを使用します。私の場合は、クルーズ コントロールを使用しています。

/p:Configuration=Release 
/p:MSDeployPublishMethod=WMSVC 
/p:DeployOnBuild=True 
/p:DeployTarget=Package 
/p:CreatePackageOnPublish=True 
/p:DeployIisAppPath=$(SolutionName)/$(ProjectName) 
/p:MsDeployServiceUrl=https://<servername>:8172/MsDeploy.axd 
/p:AllowUntrustedCertificate=True 
/p:username=<username>
/p:password=<password>
/p:EnablePackageProcessLoggingAndAssert=True
/p:PackageLocation=$(WorkingMainDir)$(ProjectName)$(ProjectType)\Package\$(SolutionName).zip
/p:IntermediateOutputPath=$(WorkingMainDir)$(ProjectName)$(ProjectType)\Temp\
/p:AutoParameterizationWebConfigConnectionStrings=true
/p:UseWPP_CopyWebApplication=true

次に、msdeploy を使用して結果のパッケージを展開します。次のリンク (受け入れられた回答) は、これを行う方法についての優れた記事です。

msdeploy (Web Deploy) が 401 認証の問題で失敗する

于 2012-09-10T13:10:30.687 に答える
-2

試してみましたが、その後プロジェクトの読み込みに失敗しました: < MsDeploySourceManifest > の下の要素 < Path > が認識されません。

于 2013-09-13T16:49:42.737 に答える