Der ganze Zweck meiner Frage war, in der Lage zu sein, meine Site laufen zu lassen, ohne f5 in Visual Studio zu verwenden und ohne den Debugger angeschlossen zu haben.
Die Lösung, stellt sich heraus, ist einfach.
Sie können es einfach in Kestrel in einem Konsolen-Terminal ausführen.
Öffnen Sie einfach ein Terminal oder Eingabeaufforderung, um Ihre Projekte Wurzel und Typ:
dotnet run
Dies wird Kestrel gegen das Projekt laufen und Ihnen sagen, was es ist Port auf. Dann können Sie http://localhost:5000 (oder w/e der Port ist) in Ihrem Browser treffen.
Update: Sie können Ihre Abhängigkeit von IIS Express auch in Ihrer gesamten App töten und f5 in Kestrel laufen lassen.
dies zu tun:
- Rechts Ihr Projekt klicken und
- Klicken Sie auf die Registerkarte Debuggen
- Klicken Sie auf Neu neben dem Profil Dropdown
- Nennen Sie es Kestrel Dev
- gehen auf Eigenschaften Ändern Sie den Starttyp in "Projekt"
- Setzen Sie die Anwendungsargumente auf "dotnet run"
- eine Umgebungsvariable für "ASPNETCORE_ENVIRONMENT"
- den Wert auf "Entwicklung"
- eine Umgebungsvariable hinzufügen Für "ASPNETCORE_URLS"
- sie einen Wert von Give "http://localhost:8080" hinzufügen oder welche URL/Port auch immer Sie laufen möchten.
Wiederholen Sie die oben genannten Optionen für "Kestrel Production" gesetzt, aber die ASPNETCORE_ENVIRONMENT auf "Produktion"
Die ASPNETCORE_ENVIRONMENT verwendet wird Ihre json Config Transformationen zu verarbeiten.
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
Was also, wenn Sie appSettings.json für Entwicklung (lokale) wollen, Staging und Produktion dann erstellen Sie 3 appSettings.json Dateien
appSettings.json
appSettings.Development.json
appSettings.Staging.json
appSettings.Production.json
Dann machen Sie die .Staging.Json etc Dateien optional mit der Option: True Config Option oben.
Also in appSettings.json haben Sie alles, was in allen Umgebungen gleich ist.
Dann in AppSettings.Development.json können Sie Dinge haben, die Sie nur wollen, wenn sie lokal ausgeführt werden.
etc etc
Sie ein Profil für jede Umgebung erstellen, so dass, wenn Sie "Kestrel Development" führen Sie es verwendet appSettings.Development.Json
Wenn Sie "Kestrel Staging" führen Sie es verwendet appSettings.Staging .Json.
Wenn Sie "Kestrel Production" ausführen, verwendet es appSettings.Production.json.
Dies wirkt sich auch auf die Funktionsweise Ihres tagHelper in Ihren MVC-Ansichten aus, z.
<environment names="Development">
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="~/css/site.css" />
</environment>
<environment names="Staging,Production">
<link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.6/css/bootstrap.min.css"
asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />
<link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />
</environment>
In diesem html, wenn Sie "Kestrel Development" laufen dann die html in der Umgebung Tag für die Entwicklung ausgegeben.
Wenn Sie Kestrel Production ausführen, wird das HTML innerhalb des Umgebungs-Tags für die Bereitstellung ausgegeben.
Sie sollten die Beschreibung erneut überprüfen und eine klare Unterscheidung zwischen IIS und IIS Express vornehmen. Momentan mischen Sie die beiden und die Frage ist schwer zu verstehen. –
Das ganze ist jetzt irgendwie irrelevant, dass ich herausgefunden habe, wie man "dotnet run" benutzt, was ich wollte. Mein Ziel war es, meine Website ohne den angehängten Debugger laufen zu lassen. Dotnet Run und Turmfalke funktioniert gut dafür. Ich werde diese Frage in Kürze löschen. –
@Ryios Bitte lösche diese Frage nicht, sondern buche deine Lösung als Antwort. Danke – objectNotFound