2015-06-04 13 views
5

Sto tentando di utilizzare i file modello di Azure Resource Manager (ARM) per distribuire come sito Web ASP.net e sto colpendo un roadblock. Questa è una caratteristica nascente di Azure, quindi non c'è molto know-how sul Web, sperando che qualcuno qui possa aiutare.ARM - errore di distribuzione del sito Web

posso creare con successo un nuovo sito (per esempio una risorsa Microsoft.Web/siti) in un nuovo gruppo di risorse cioè funziona quando mi definisco un sito web nel modello ARM in questo modo:

{ 
    "apiVersion": "2014-06-01", 
    "name": "[parameters('siteName')]", 
    "type": "Microsoft.Web/sites", 
    "location": "[parameters('siteLocation')]", 
    "tags": { 
    "[concat('hidden-related:', resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]": "Resource", 
    "displayName": "Website" 

    }, 
    "dependsOn": [ 
    "[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]" 
    ], 
    "properties": { 
    "name": "[parameters('siteName')]", 
    "serverFarm": "[parameters('hostingPlanName')]" 
    } 
} 

Il mio problema arriva quando provo a distribuire un sito Web ASP.net al suo interno. Ecco quello che ho aggiunto al mio modello ARM:

{ 
    "apiVersion": "2014-06-01", 
    "name": "[parameters('siteName')]", 
    "type": "Microsoft.Web/sites", 
    "location": "[parameters('siteLocation')]", 
    "tags": { 
    "[concat('hidden-related:', resourceGroup().id, '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]": "Resource", 
    "displayName": "Website" 

    }, 
    "dependsOn": [ 
    "[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]" 
    ], 
    "properties": { 
    "name": "[parameters('siteName')]", 
    "serverFarm": "[parameters('hostingPlanName')]" 
    }, 
    "resources": [ 
    { 
     "apiVersion": "2014-06-01", 
     "type": "extensions", 
     "name": "MSDeploy", 
     "dependsOn": [ "[concat('Microsoft.Web/sites/', parameters('siteName'))]" ], 
     "properties": { 
     "connectionString": "", 
     "dbType": "", 
     "packageUri": "file:///D:/svn/dh.PSP.Conductor/dh.PSP.Conductor.AzureResourceGroup/obj/Release/ProjectReferences/dh.PSP.Conductor.Api/package.zip" 
     } 
    } 
    ] 
} 

sto distribuzione da PowerShell e viene a mancare con:

New-AzureResourceGroup : 16:00:35 - Resource Microsoft.Web/sites/extensions 'ARMTest20150604/MSDeploy' failed with message 'The resource operation completed with terminal provisioning state 'Failed'.'

Se guardo nel portale vedo un errore di un po 'più utile:

statusCode:Conflict statusMessage:{"status":"Failed","error":{"code":"ResourceDeploymentFailure","message":"The resource operation completed with terminal provisioning state 'Failed'."}}

enter image description here sono nessuno il più saggio perché questo sta fallendo però. Qualcuno può suggerire come posso indagare ulteriormente?

+0

Ora c'è un bell'articolo di risoluzione dei problemi disponibile per tis tipo di problema: https://github.com/Azure/azure-content/blob/master/articles/virtual-machines/resource- group-deploy-debug.md – DeChrist

risposta

18

Il guasto è mio (come potreste aspettarvi). Non è possibile fare riferimento a un file locale per la proprietà packageUri, il file deve essere caricato prima nella memoria blob.

Qualcos'altro utile che ho scoperto, un registro di distribuzione è disponibile sfogliando a https://websitename.scm.azurewebsites.net/DebugConsole, "cd logfiles \ siteextensions \ msdeploy", aperto appManagerLog.xml. Molto più informazioni utili in là. Nel mio caso:

<entry time="2015-06-04T15:28:12.0718158+00:00" type="Error"> 
     <message>AppGallery Deploy Failed: 'System.UriFormatException: Invalid URI: The URI is empty. 
    at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind) 
    at System.Uri..ctor(String uriString) 
    at Microsoft.Web.Deployment.WebApi.AppGalleryPackage.IsPremiumApp() 
    at Microsoft.Web.Deployment.WebApi.DeploymentController.CheckCanDeployIfAppIsPremium(AppGalleryPackageInfo packageInfo, Boolean&amp;amp; isPremium)'</message> 
    </entry> 
    <entry time="2015-06-04T15:28:12.1186872Z" type="Message"> 
     <message>Downloading package path 'D:\svn\dh.PSP.Conductor\dh.PSP.Conductor.AzureResourceGroup\obj\Release\ProjectReferences\dh.PSP.Conductor.Api\package.zip' from blob ''</message> 
    </entry> 
    <entry time="2015-06-04T15:28:12.1186872Z" type="Error"> 
     <message>Failed to download package.</message> 
    </entry> 
+1

Grazie davvero molto utile. Ho appena scoperto Kudu –

+0

Particolarmente utile: dai un'occhiata al file LogFiles/SiteExtensions/WebDeploy/appManagerLog.xml – MoJo2600

+0

E 'LogFiles/SiteExtensions/MSDeploy/appManagerLog.xml – MoJo2600