Ist es möglich, eine MVC 6-Anwendung ohne IIS (nicht Web API) selbst zu hosten?
Ja. Tatsächlich sind alle ASP.NET Core-Anwendungen selbst gehostet. Sogar in der Produktion sind IIS (oder Nginx) ein Reverse-Proxy für die selbst gehostete Anwendung.
Hier ist, wie Sie es versuchen können.
Erste, herunterladen und installieren .NET-Core von hier https://www.microsoft.com/net/core
Second, erstellen Sie ein MVC 6 Projekt. Klonen Sie beispielsweise ein Beispiel aus dem ASP.NET GitHub-Repository.
git clone [email protected]:aspnet/cli-samples.git
cd cli-samples\HelloMvc
Oder use Yeoman to generate an ASP.NET MVC 6 site.
npm install -g yo
npm install -g bower
npm install -g generator-aspnet
yo aspnet webbasic MyMvc6App
cd MyMvc6App
Dritte, wiederherstellen und das Projekt.
dotnet restore
dotnet run
Schließlich, navigieren Sie zu localhost: 5000 in Ihrem Web-Browser. Die MVC 6-Anwendung ist selbst gehostet.
Schauen Sie bei der resultierenden Program.cs-Klasse, können Sie das Self-Hosting sehen. Die IISIntegration
ist optional - es ist nur notwendig, wenn Sie mit IIS integrieren möchten.
public class Program
{
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.AddCommandLine(args)
.AddEnvironmentVariables(prefix: "ASPNETCORE_")
.Build();
var host = new WebHostBuilder()
.UseConfiguration(config)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
Siehe die Anweisungen am Ende dieses Artikels: http://www.asp.net/vnext/overview/aspnet-vnext/create-a-web-api-with-mvc-6 Die gleichen Schritte gelten zu mvc und Web-API, da sie die gleiche Art von Projekt in asp.net 5 – rdans
sind, wenn ich Web-Listener zu Host-Anwendung verwenden, bekam ich die folgende Ausnahme. System.MissingMethodException: Methode nicht gefunden: 'Int32 System.Runtime.InteropSe rvices.Marshal.SizeOf (!! 0)'. bei Microsoft.Net.Http.Server.WebListener.SetRequestQueueLimit() bei Microsoft.Net.Http.Server.WebListener.Start() bei Microsoft.AspNet.Server.WebListener.MessagePump.Start (Func'2 app) bei Microsoft.AspNet.Server.WebListener.ServerFactory.Start (IServerInformation Server, Func'2 App) bei Microsoft.AspNet.Hosting.HostingEngine.Start (HostingContext Kontext) – selva
Willkommen bei Stack Overflow, @selva! Dies ist ein inhärentes Merkmal des Builds [tag: asp.net-5], wie @rdans sagte. Wenn Sie ein bestimmtes Problem mit dem Funktionieren des verknüpften Lernprogramms haben, stellen Sie diese Frage stattdessen. –