2015-12-19 188 views
3

我試圖從Bitbucket爲Azure Web App設置連續部署。然而,部署失敗,出現以下錯誤:Azure Web應用程序(MVC 6)持續部署失敗

Command: deploy.cmd 
Handling ASP.NET 5 Web Application deployment. 
Invoke-Command : Cannot validate argument on parameter 'Architecture'. The 
argument "undefined" does not belong to the set ",x86,x64,arm" specified by 
the ValidateSet attribute. Supply an argument that is in the set and then try 
the command again. 
At C:\Program Files 
(x86)\SiteExtensions\Kudu\49.41216.1976\bin\scripts\dnvm.ps1:1914 char:9 
+   Invoke-Command ([ScriptBlock]::Create("dnvm-$cmd $cmdargs")) 
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo   : InvalidData: (:) [Invoke-Command], ParameterBindingValidationException 
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Power 
Failed exitCode=1, command=PowerShell -NoProfile -NoLogo -ExecutionPolicy 
unrestricted -Command " 
[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; 
[System.Threading.Thread]::CurrentThread.CurrentUICulture = '';$CmdPathFile='"D:\local\UserProfile\.dnx\temp-set-envvars.cmd"';& 
'C:\Program Files (x86)\SiteExtensions\Kudu\49.41216.1976\bin\scripts\dnvm.ps1' " install undefined -arch undefined -r undefined 
Shell.Commands.InvokeCommandCommand 

An error has occurred during web site deployment. 

直接從Visual Studio 2015發佈/部署工作沒有任何問題。似乎dnvm.ps1命令傳遞了一堆導致此錯誤的「未定義」參數。通過運行

azure site deploymentscript --aspNet5 <path to the project.json file> 

創建本地部署腳本(as instructed here)也將產生同樣具有「未定義」變量deploy.cmd。

我不使用任何自定義部署腳本和我global.json樣子:

{ 
    "projects": [ "src", "test" ], 
    "sdk": { 
    "version": "1.0.0-rc1-update1" 
    } 
} 
+0

我們從BitBucket部署沒有問題。您的存儲庫是否包含任何部署腳本,或者您是否讓它自動生成?您是否使用global.json文件來定義您使用的是哪個框架版本? –

+0

我在上面的問題中添加了我的global.json。我沒有使用任何自定義部署腳本。感謝您的幫助! –

回答

1

發生此問題是因爲我運行了azure site deploymentscript --aspNet5 <path to the project.json file>,它在本地生成deploy.cmd文件。該文件然後由Azure部署使用(如果存在)。由於a bug in the generator,本地deploy.cmd有未定義的參數。刪除deploy.cmd解決了這個問題。

0

你global.json文件可以定義runtimearchitecture

{ 
    "projects": [ "src", "test" ], 
    "sdk": { 
    "version": "1.0.0-rc1-update1", 
    "runtime": "clr", 
    "architecture": "x64" 
    } 
} 

我猜測這些腳本是從這些值中拉出來的,不知道如何應對它們從global.json中丟失?

1

我最終不得不在重新運行部署腳本生成器時明確指定它們作爲參數。

azure site deploymentscript --aspNet5 sr\[myprojectfolder]\ --aspNet5Version 1.0.0-rc1-update1 --aspNet5Architecture x64 --aspNet5Runtime CLR

作爲首位global.json指定它們由automatonicand建議,然後重新運行沒有任何影響,我認爲這是一個錯誤。