2016-05-24 17 views
8

ASP.NET Core uygulamamı Azure'a nasıl yayımlayabilirim?ASP.NET Core uygulamasını PowerShell aracılığıyla Azure'a yayımlama 502'ye (Bozuk Ağ Geçidi) alma Azure'da

Şimdiye kadar yaptığım, Visual Studio'nun da kullandığı varsayılan yayınlama.ps1 komut dosyasını arayan resmi Azure/Microsoft belgelerinden aldığım bir komut dosyası oluşturuldu. .Script şöyle:

param($websiteName, $packOutput) 

$website = Get-AzureWebsite -Name $websiteName 

# get the scm url to use with MSDeploy. By default this will be the second in the array 
$msdeployurl = $website.EnabledHostNames[1] 


$publishProperties = @{'WebPublishMethod'='MSDeploy'; 
         'MSDeployServiceUrl'=$msdeployurl; 
         'DeployIisAppPath'=$website.Name; 
         'Username'=$website.PublishingUsername; 
         'Password'=$website.PublishingPassword} 


$publishScript = "${env:ProgramFiles(x86)}\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\Publish\Scripts\default-publish.ps1" 


. $publishScript -publishProperties $publishProperties -packOutput $packOutput 

Şimdi bu yazı size Azure web sitesi ismi ve dotnet objeyi yayımlamak sağlamak verilen varsayılan-publish.ps1 komut üzerine çağırır. Benim default-publish.ps1 komut dosyasını, şu anda repo'da olana tam olarak güncelledim.

Sorun, Azure'a yayımladığımda 502 hatalı bir Ağ Geçidi hatası döndürmesidir. Yeni araç güncellemesi kullanılarak oluşturulan bir proje ile bile, bunu Azure'a doğru şekilde yayınlayamıyorum.

+0

Hatalı ağ geçidi, büyük olasılıkla uygulamanızın hiç başlatılmadığı anlamına gelir. Uygulamanızı Azure'a dağıtmadan önce nasıl yayınlıyorsunuz? Uygulamanızı yayınladıktan sonra web.config'iniz nasıl görünür? Bence, web.config dosyanızın yalnızca yer tutucu değerleri olması. Kutunun dışında uygulama, yapılandırmanızı düzeltmek için uygulamayı yayınladıktan sonra yayınlama-iis aracını çalıştırmak için kurulur. Bence bu adım gerçekleşmiyor ya da - RC1'den RC2'ye geçtiyseniz - web.config şu an doğru yerde değil, artık wwwroot'ta değil, onayda olmalı. – Pawel

+0

Noktalı geri yükleme, dotnet oluşturma ve bir dotnet'i bir yere yayınlayan CI üzerinde bir betikimiz var ve daha sonra, gerçek mastar dağıtımını yapmak için post'ta bahsedilen repoda bulunan vs yayınlama komut dosyasını kullanıyoruz. Bu proje her zaman RC2'den başlayarak webconfig, yeni VS tooling güncellemesi ile yeni bir RC2 projesine başladığınızda aldığınız varsayılan değerdir. web.config, startup.cs ve program.cs ile birlikte sağdadır. – Lutando

+0

ASP.NET Core uygulamalarının IIS ile birlikte çalıştığı, sorun giderme 502.3 Bad Gatway'in tüm bölümünü içeren bir yazı yazdım: https://blog.3d-logic.com/2016/06/08/running-asp-net-core- uygulamaları-ile-IIS-ve-antares /. Bunu faydalı bulabilirsiniz. – Pawel

cevap

1

Web.config'iniz var mı?

"publishOptions": { 
    "include": [ 
     "wwwroot", 
     "web.config" 
    ] 
    } 

Sizin web.config bu gibi bir şey olacaktır:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.webServer> 
    <handlers> 
     <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" 
      resourceType="Unspecified"/> 
    </handlers> 
    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" 
       stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" 
       forwardWindowsAuthToken="false"/> 
    </system.webServer> 
</configuration> 

Not: ortam değişkenleri LAUNCHER_PATH ve LAUNCHER_ARGS kaynağı olabilir böyle senin project.json dahil mi senin sorunun. Görsel stüdyonun yayınladığı yayınlama betiklerini başlatmaya çalışıyorsunuz, görsel stüdyonun senaryoları çalıştırmadan önce ortamdaki değerleri ayarlaması mümkündür.

bir RC2 sitesi yukarı almak ve bir Azure VM üzerinde çalışan, bu gibi görünmek için o çizgiyi değiştirmek zorunda:

<aspNetCore processPath="dotnet" arguments="./YourAppEntryPoint.dll" 
      stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" 
      forwardWindowsAuthToken="false"/> 

açık değerler ile web.config ayarlamayı deneyin. Dağıtımınız işe yararsa, o zaman bunu kaçırmakta olan eksik ENVVARS olduğunu bilirsiniz.

+0

yayınlama-iis aracı [postpublish komut dosyası olarak kablolu] olmalıdır (https://github.com/aspnet/cli-samples/blob/master/HelloMvc/project.json#L35-L37) ve yapılandırmayı buna göre. – Pawel

+0

Sadece görsel stüdyosu kullanıyorsanız. – NotMyself

+0

Hayır, bunu kendiniz ayarlayabilirsiniz. yayın-iis bir VS aracı değil genel bir araçtır. – Pawel

İlgili konular