2016-04-23 3 views
0

Ich habe eine MVC 6-Anwendung, die in Azure als Web App gehostet wird. Es läuft gut auf lokale von Iisexpress, aber wenn ich es in Azure gehostet mit Publish-Option in Visual Studio, funktioniert es nicht. Es wartet nur darauf, die Website zu laden. Nach 4-5 Minuten Wartezeit zeigt es nichts an.ASP NET MVC 6 Web App gehostet auf Azure nicht ausgeführt

Ich habe es auch mit statischen Datei getestet. Ich habe eine statische HTML-Datei im wwwroot-Ordner hochgeladen, aber es funktioniert auch nicht.

Ich bekomme nicht, wie ich den tatsächlichen Fehler sehen kann. Kann mir jemand helfen?

+1

Haben Sie Fehler? Was passiert, wenn Sie versuchen, die App manuell zu starten (App-Dienste> App-Dienst> Tools> Konsole> cd \ home \ site \ approot und dort "web.cmd" ausführen)? – Tseng

Antwort

1

Da Sie fast keine Informationen zur Verfügung gestellt haben, muss ich raten, da ich an diesem Wochenende einen ähnlichen Fehler bei der Bereitstellung einer ASP.NET Core 1.0 WebApp für einen Azure App Service hatte.

Das Problem, mit dem ich konfrontiert war, war, dass die Hauptanwendung nicht starten würde. Nach ein paar Stunden habe ich eine Fehlermeldung mit der in den Kommentaren erwähnten Methode (web.cmd wird manuell ausgeführt) erhalten, die eine Microsoft.AspNet.Server.Kestrel.Networking.UvException: Error -4089 EAFNOSUPPORT address family not supported Ausnahme zurückgegeben hat.

Ich konnte nichts direkt darauf finden, aber war ein Hinweis auf ein IPv6-Problem. Ein paar andere SO-Posts gaben an, dass die Einstellung http://*:12345 als Port sowohl an IPv4 als auch an IPv6 gebunden ist. Nachdem ich die URL zu http://0.0.0.0:12345 in hosting.json geändert habe, begann es ohne Probleme.

Ich füllte eine issue on Kestrel GitHub und dies scheint ein Bug in Kestrel zu sein.

bearbeiten: Als Reaktion auf den Kommentar:

benutzte ich

{ 
    "server": "Microsoft.AspNet.Server.Kestrel", 
    "server.urls": "http://*:8081" 
} 

und änderte es zu

{ 
    "server": "Microsoft.AspNet.Server.Kestrel", 
    "server.urls": "http://0.0.0.0:8081" 
} 

Der Unterschied scheint zu müssen, dass http://*:8081 bindet auch an IPv4 und IPv6 am selben Port, während http://0.0.0.0:8081 nur an IPv4 und nicht an IPv6 bindet.

+0

Welche Einstellung haben Sie zu 'hosting.json' hinzugefügt? Oder wie sieht Ihre 'hosting.json' Datei aus? – Stephen

+0

@Stephen: Meine Antwort aktualisiert – Tseng

Verwandte Themen