2016-03-12 12 views
6

Früher habe ich meine Web-Anwendungen mit ASP.NET 4.x und hosten sie in voller IIS entwickeln bereits während der Entwicklung, denn:Verwenden Sie vollständige IIS während ASP.NET 5/Core-1.0-Entwicklung

1) Ich verwende Multi-Tenancy (site1.me.local und site2.me.local Punkt zu meiner App) und IIS Express kann nicht mit dem AFAIK umgehen
2) Meistens brauche ich keinen Debugger -> ich gerade (re) Erstellen Sie meine App und aktualisieren Sie den Browser - Neustart von IIS Express und der VS-Debugger verschwendet Zeit

Jetzt habe ich meine erste Web-Anwendung mit ASP.NET 5 aka Core 1.0 versucht und ich konnte es nicht zum Laufen bekommen Voller IIS, um meinen bekannten Workflow weiter zu verwenden. Ich habe herausgefunden, dass ich IIS Express ohne Debugging starten kann und nur neu erstellen, um # 2 zu lösen, aber # 1 ist noch offen.

Wird IIS während der Entwicklung vollständig für ASP.NET 5/Core 1.0 unterstützt? Wenn ja, gibt es eine Dokumentation darüber, wie man das einrichten kann?

Die gesamte Dokumentation für vollständige IIS, die ich gefunden habe, ist für die Veröffentlichung, aber nicht für die Entwicklung.

+2

AFAIK, können Sie nicht vollständige IIS verwenden. IIS Express unterstützt Multitenancy! Derzeit entwickeln wir eine Multi-Tenant-Web-App und haben keine Probleme mit iis express. Sie müssen Ihre Host-Datei und Ihre applicationhost.config bearbeiten und vs2015 als admin ausführen. Check out: http://stackoverflow.com/questions/4709014/using-custom-domains-with-iis-express – regnauld

+0

Jede Änderung mit diesem? Welches Szenario ist für die Entwicklung auf Core, drücken Sie jedes Mal "debug"? – Ssss

Antwort

1

Der Integrationsmodus mit voller IIS wurde mehrfach geändert (von Beta RC1 und jetzt zu RC2), die in der Dokumentation

https://github.com/aspnet/Announcements/issues/164

Sie wahrscheinlich warten müssen, bis RC2 verfügbar ist vermasselt, um die neuesten offiziellen Schritte zu sehen.

2

Eventuell möchten Sie IIS nicht in der Entwicklung mit Asp.Net Core verwenden. Asp.Net Core wurde von IIS getrennt und selbst in der Produktion wird IIS nur als Reverse-Proxy fungieren, der Anfragen an Ihre AspNet.Core-Anwendung weitergibt. Asp.Net Core verwendet Kestrel als Anwendungsserver und es ist viel einfacher, dies während der Entwicklung zu verwenden. Um einen ähnlichen Workflow zu erhalten, den Sie zuvor hatten, würden Sie während der Entwicklung dnx watch/dotnet watch verwenden, der Code-Dateien Ihrer Anwendung sehen wird und wenn eine der Dateien sich ändert, wird die Anwendung gestoppt, das Projekt neu erstellt und die Anwendung neu gestartet. Dies ist der Zeitpunkt, an dem Sie den Browser aktualisieren können, um Änderungen zu sehen (beachten Sie, dass dies noch ein Schritt weniger ist als vorher, in dem Sie die Anwendung selbst neu erstellen mussten).

Es sollte immer noch möglich sein, IIS für die Entwicklung zu verwenden, wenn Sie es wirklich brauchen, aber wenn Sie kein spezifisches Szenario haben, das IIS benötigt Ich glaube nicht, dass IIS für die Entwicklung Ihnen Vorteile bringt.

+1

Es wäre ein Muss für die ASP.NET Core-Entwicklung, mit vollem IIS zu arbeiten. Ich denke, Microsoft wird diese Lücke bald schließen. Viele Features können nicht mit IIS Express getestet werden, da es keine Konzepte wie den Anwendungspool gibt. –

+0

Ich habe es nicht versucht, aber es ist möglich, dass IIS den Asp.NET Core-App-Prozess neu startet, wenn Sie Ihre web.config-Datei berühren. Wenn Sie Visual Studio verwenden, denke ich, Tooling kann dies auch kümmern - wieder möglicherweise wird nur Ihre Anwendung veröffentlichen, die web.config überschreiben wird möglicherweise Asp.NET Core App Prozess wie oben starten (oder einfach mit [app_offline.htm ] (https://github.com/aspnet/IISIntegration/issues/81)). Nachdem ich das gesagt habe - IMHO, wenn Sie nicht eine bestimmte Funktion von IIS verwenden, die nicht von Kestrel unterstützt wird (z. B. Windows Auth), indem Sie IIS für die Entwicklung verwenden, ist das ein Overkill. – Pawel