10

IIS Web サーバーにデプロイしたい ASP.NET MVC Web アプリケーション プロジェクトがあります。サイト ツリーは次のように設定されます。

SERVERNAME(myDomain\Username)
   Application Pools
   Sites
      Default Web Site
      MyProjectSite
         bin
         Content
         ...
         Views

MyProject サイトにデプロイしようとしています。私が使用している以下の設定と、返されているエラーを参照してください。どうやらサイトのパスを正しく指定していないようですが、私の人生では、それがどうあるべきかわかりません。

次の設定は、反復間で同じままです。

/p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:CreatePackageOnPublish=False /p:MSDeployPublishMethod=WMSvc /p:AuthType=Basic /p:Username="myUserName" /p:Password="MyPassword" /p:AllowUntrustedCertificate=True

IISAppPath として SiteName/ を指定します。

パラメーター:

/p:MsDeployServiceUrl="https://serverName:8172/MsDeploy.axd?Site=MyProjectSite" /p:DeployIisAppPath="MyProjectSite/"

エラー:

Could not complete an operation with the specified provider ("createApp") when connecting using the Web Management Service- 新しいサイトを作成したくありません。既に存在するコンテンツを同期したい。

IISAppPath をルートとして指定します (URL のサイト名が使用されていると仮定します)。

パラメーター:

/p:MsDeployServiceUrl="https://serverName:8172/MsDeploy.axd?Site=MyProjectSite" /p:DeployIisAppPath="/"

エラー:

Could not complete an operation with the specified provider ("iisApp") when connecting using the Web Management Service- 既定の Web サイトまたは何かにアクセスしようとしているようです (意図的に自分自身に権限を与えていません)。

IISAppPath を空の文字列として指定します (URL のサイト名が使用されていることを前提としています)。

パラメーター:

/p:MsDeployServiceUrl="https://serverName:8172/MsDeploy.axd?Site=MyProjectSite" /p:DeployIisAppPath=""

エラー:

The "ConcatFullServiceUrlWithSiteName" task was not given a value for the required parameter "SiteAppName"- そのため、"" は実際には null 値として解釈され、連結の試行が中断されます。

URL にサイト属性を指定せず、SiteName/ を IISAppPath として指定します

パラメーター:

/p:MsDeployServiceUrl="https://serverName:8172/MsDeploy.axd" /p:DeployIisAppPath="MyProjectSite/"

エラー:

Could not complete an operation with the specified provider ("createApp") when connecting using the Web Management Service

URL にサイト属性を指定せず、SiteName を IISAppPath として指定する

パラメーター:

/p:MsDeployServiceUrl="https://serverName:8172/MsDeploy.axd" /p:DeployIisAppPath="MyProjectSite"

エラー:

Could not complete an operation with the specified provider ("createApp") when connecting using the Web Management Service

SiteAppName で連結を実行していることを考えると、それを Site 名と組み合わせているに違いありません。サイトをサイトのルートに同期させるために、そこに何を配置する必要がありますか?

アップデート

適切なパス スキームを把握するために、Visual Studio 2012 の [発行] ダイアログを使用して発行しようとしました。この場合、リクエストがタイムアウトしたというエラーが返されます (接続のテストはほぼ瞬時に機能し、変更のプレビューは機能しますが、数秒かかります)。イベント ログと wmsvc のトレース ログを確認しましたが、役に立ちませんでした。トレースを詳細に設定しても、トレースログには何も表示されません。両方のコンピューターでファイアウォールを無効にしようとしましたが、その面でも何も機能していないようです。

4

1 に答える 1

5

これを考え出した。

この問題は、プロジェクト プロパティの [Web 配置] ページの 2 つの設定に起因していました。以前、このプロジェクトを (デバッグ構成で) セットアップして、アプリケーションの実行に必要なファイルのみをコピーし、zip パッケージをビルドしませんでした。ただし、リリース構成のこれらの設定に対して何もすることを怠っていました。

createApp を使用しようとした理由 (信頼度 75%) は、作成した Zip パッケージから展開していたためです。したがって、これらの場合の IISAppPath 設定は問題ありませんでした。間違ったものを展開しただけです。

Create deployment package as a zip file設定をfalseに設定し、ドロップItems to deployダウンをこのアプリケーションの実行に必要なファイルのみに設定すると、すべて問題なく終了しました。

ちなみに、(上記のように) Visual Studio の [Web 発行] ダイアログによって出力された発行プロファイルを使用できることがわかりました (残念ながら 2012 のみ; 2010 では、よくわからないマッサージを行う必要があります)。スペースを入れずに名前を付け、引数としてパスワードと信頼できない証明書の設定を指定しました。TFS のビルド定義の MSBuild 引数は次のようになります。 /p:DeployOnBuild=True;PublishProfile=NameOfPublishProfile /p:AllowUntrustedCertificate=True /p:Password=PleaseVerifyMe

于 2013-03-06T16:57:47.603 に答える