2016-07-05 2 views
2

Ich habe gerade mein ASP-Projekt von ASP .Net Core 1.0.0-rc2-final auf 1.0.0 aktualisiert. Es gab zwei Probleme, die nicht vom Nuget-Paket-Manager behandelt wurden.Der Wechsel von ASP.Net Core 1.0.0-rc2-final auf 1.0.0 führt dazu, dass die veröffentlichte Site fehlschlägt

Zum einen

"Microsoft.NETCore.App": { 
    "version": "1.0.0-rc2-3002702", 
    "type": "platform" 
}, 

wurde nur

aktualisiert
"Microsoft.NETCore.App": "1.0.0", 

, die gescheitert zu kompilieren und zu, dass ich geändert, so zu

"Microsoft.NETCore.App": { 
    "version": "1.0.0", 
    "type": "platform" 
}, 

Zweitens I

services.AddMvc(); 
Änderungen erforderlich

zu

services 
    .AddMvc() 
    .AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver()); 

in meiner Startup.cs Datei. Die einzigen anderen Änderungen waren die von Nuget an meine project.json Datei vorgenommenen Änderungen.

Das Projekt wird ohne Problem lokal ausgeführt und erfolgreich von VS2015 zu Azure veröffentlicht. Wenn ich jedoch einen Browser auf meiner Site auf Azure öffne, erhalte ich die Fehlermeldung

Die angegebene CGI-Anwendung hat einen Fehler festgestellt und der Server hat den Prozess beendet.

Warum? Wie kann ich diesen Fehler diagnostizieren und beheben?

(N. B. Nach @ Pawel Vorschlag unter meinem web.config, project.json und Startup.cs in this Gist zur Verfügung stehen.)

+1

Zeigen Sie Ihre project.json, StartUp und web.config * nachdem * Sie Ihre App veröffentlicht haben. Sie können sich auch die Schritte zur Fehlerbehebung ansehen, die ich in meinem Blogbeitrag gezeigt habe: https://blog.3d-logic.com/2016/06/08/running-asp-net-core-applications-with-iis-and- antares/ – Pawel

+0

Von der Azure VM wird veröffentlicht? – dumbledad

+0

ja. weil, wenn es falsch ist, die Anwendung nicht von proxy/antares/iis – Pawel

Antwort

6

Das Problem ist, dass Ihre Werkzeuge Abschnitt leer ist. Es gibt einen Fehler in der NuGet-Benutzeroberfläche, der beim Versuch, die Werkzeugpakete zu aktualisieren, sie in das Verzeichnis dependencies verschiebt und die Werkzeuge nicht mehr funktionieren (https://github.com/aspnet/IISIntegration/issues/215#issuecomment-229433836). In Ihrem Fall, weil Sie nicht Microsoft.AspNetCore.IISIntegration.Tools in der tools Abschnitt das Postpublish-Skript nicht seine Arbeit - es aktualisiert die web.config nicht. (Sie sollten tatsächlich einige Nachrichten sehen, wenn Sie Ihre App veröffentlichen). Sie müssen Ihre project.json reparieren, um Werkzeuge an der richtigen Stelle zu platzieren (beachten Sie, dass einige Werkzeuge tatsächlich Einträge in beiden benötigen - tools und dependencies). Hier ist eine project.json Datei erstellt, wenn Sie eine neue Web-App in VS erstellen:

"dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.0", 
     "type": "platform" 
    }, 
    "Microsoft.ApplicationInsights.AspNetCore": "1.0.0", 
    "Microsoft.AspNetCore.Diagnostics": "1.0.0", 
    "Microsoft.AspNetCore.Mvc": "1.0.0", 
    "Microsoft.AspNetCore.Razor.Tools": { 
     "version": "1.0.0-preview2-final", 
     "type": "build" 
    }, 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", 
    "Microsoft.AspNetCore.StaticFiles": "1.0.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "Microsoft.Extensions.Logging": "1.0.0", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", 
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0" 
    }, 

    "tools": { 
    "BundlerMinifier.Core": "2.0.238", 
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final", 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final" 
    }, 

Stellen Sie sicher, dass Werkzeuge (Pakete mit dem .Tools Suffix) in Ihrem project.json sind in den gleichen Stellen wie im Snippet über.

+0

Interessant - Ich habe diesen Abschnitt nicht geleert, NuGet tat es, als es die Pakete aktualisierte. In jedem Fall funktioniert das. Ich benutze den Abschnitt "tools", den Sie geben, aktualisieren Sie die NuGet-Pakete (ich entscheide mich dafür, Vor-Releases einzuschließen) und jetzt wird es lokal ausgeführt und in azure bereitgestellt. Vielen Dank. – dumbledad

+0

Ich bin froh, dass Sie das beheben konnten. Ja, dieses NuGet UI-Problem ist ein Problem. – Pawel

+0

Es sieht so aus, als würde es auf einer neuen Maschine bauen. Ich muss zusätzlich die 'global.json' Datei der obersten Ebene editieren und' "version": "1.0.0-preview1-002702" 'in' "version" ändern: "1.0.0-Vorschau2-003121" '. Keine Ahnung, warum sie nicht automatisch aktualisiert wurden, oder warum sie nach der Veröffentlichung immer noch einen "Vorschau" -Wert hat, aber ich wollte hier meinen zusätzlichen Schritt aufzeichnen. – dumbledad

Verwandte Themen