2016-03-30 28 views
0

ASP.NET Core web sitemi, Azure Docker'da Visual Studio 2015 aracılığıyla this Visual Studio uzantısı kullanarak yayınlamaya çalışıyorum. Farklı yaklaşımları denedim ama her birinde dağıtımı başarısız oldu.Visual Studio 2015'ten Azure'da docker'a yayınlanırken hata oluştu

Yaklaşım 1 Windows docker kabı doğrudan Visual Studio'dan oluşturuldu. Bu durumda VM başarıyla oluşturuldu ve yayınlamadan önce bağlantıyı başarıyla doğrulayabilecektim. enter image description here

Ancak hatayı Görsel stüdyodan doğrudan Linux liman işçisi kapsayıcı oluşturuldu

Step 1 : FROM microsoft/aspnet:1.0.0-rc1-update1 Pulling repository 
docker.io/microsoft/aspnet Error: image 
microsoft/aspnet:1.0.0-rc1-update1 not found 

Yaklaşım 2 aşağıdaki başarısız oldu yayınlarlar. Yine, VM başarıyla oluşturuldu ve yayınlamadan önce bağlantıyı başarıyla doğrulayabiliyordum. açılan port 80 ile Azure portaldan klasik VM düzenlendi

Executing command [docker --tlsverify -H tcp://vmname.southeastasia.cloudapp.azure.com:2376 logs cf32793c88939d664f67c651cbc75c4fb348fdd6fe85ea67322f9b5d049c0e70] 
Failed to connect to http://vmname.southeastasia.cloudapp.azure.com/. If your Docker host is an Azure virtual machine, please make sure to set up the endpoint '80' using the Azure portal. 
Container logs: 
System.InvalidOperationException: The current runtime target framework is not compatible with 'MulitvideoMonitoring'. 

Current runtime target framework: 'DNX,Version=v4.5.1 (dnx451)' 

Version:  1.0.0-rc1-16231 
Type:   Mono 
Architecture: x64 
OS Name:  Linux 
OS Version: debian 7 
Runtime Id: ubuntu.14.04-x64 


Please make sure the runtime matches a framework specified in project.json 
    at Microsoft.Dnx.ApplicationHost.DefaultHost.GetEntryPoint (System.String applicationName) [0x00000] in <filename unknown>:0 
    at Microsoft.Dnx.ApplicationHost.Program.ExecuteMain (Microsoft.Dnx.ApplicationHost.DefaultHost host, System.String applicationName, System.String[] args) [0x00000] in <filename unknown>:0 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [0x00000] in <filename unknown>:0 
    at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute (System.Reflection.Assembly assembly, System.String[] args, IServiceProvider serviceProvider) [0x00000] in <filename unknown>:0 
    at Microsoft.Dnx.Host.Bootstrapper.RunAsync (System.Collections.Generic.List`1 args, IRuntimeEnvironment env, System.String appBase, System.Runtime.Versioning.FrameworkName targetFramework) [0x00000] in <filename unknown>:0 

Yaklaşım 3 : yayıncılık ben şu hata var. Bağlantı doğrulandığında başarısız oldu. hata aşağıdaki o VM bağlanamadı yayıncılık ve verirken:

Executing command [docker --tlsverify -H tcp://vmname.cloudapp.net:2376 ps -a | select-string -pattern ":80->" | foreach { Write-Output $_.ToString().split()[0] }] 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(386,5): 
Error : An error occurred trying to connect: Get https://vmname.cloudapp.net:2376/v1.22/containers/json?all=1: dial tcp 23.97.54.64:2376: 
connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. 

talep yukarıdaki üç yaklaşımlar sorunu çözmek için yardımcı olur.

+0

Birkaç soru: Docker Daemon, tcp uç noktasını dinliyor mu? docker ana bilgisayarına gidip "docker -H tcp: //vmname.southeastasia.cloudapp.azure.com: 2376 ps" komutunu çalıştırırsanız çalışır mı? Docker arka planının tcp portu dışarıdan erişilebilir mi dinliyor? – Mani

cevap

0

Bu sorunu Linux VM'mde çözebiliyordum. Sorun dockerfile yanlış çalışma zamanı nedeniyle oldu. Visual Studio aracından otomatik oluşturulan dockerfile, soruna neden olan yanlış çalışma süresine sahipti. Dockerfile, çalışma saatini olarak değiştirerek çalışma saatini FROM microsoft/aspnet:1.0.0-rc1-update1 değiştirdi. Ben, here tarafından benimsenen benzer soruya verilen bir cevaptan ipucu aldım.