2016-08-04 13 views
4

Ich habe den folgenden Abschnitt in project.json hinzugefügt.Wie ändere ich die Portnummer für die Asp.Net Core App?

"commands": { 
    "run": "run server.urls=http://localhost:8082", 
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:8082", 
    "weblistener": "Microsoft.AspNet.Hosting --server WebListener --server.urls http://localhost:8082" 
    }, 

aber es zeigt immer noch "Jetzt auf das Zuhören: http://localhost:5000", wenn es dotnet myapp.dll mit laufen?

BTW, können Kunden von anderen Computern auf den Service zugreifen?

+0

Mögliche Duplikat von [Wie angeben der Port, auf dem eine ASP.NET Core-Anwendung gehostet wird?] (http://stackoverflow.com/questions/37365277/how-to-specify-the-port-an-asp-net-core-application-is-hosted- on) – Set

+0

Die Eigenschaft 'commands' wird nicht mehr von' dotnet' verwendet, weshalb es nicht funktioniert. – svick

Antwort

15

Ja, dies ist von anderen Rechnern aus möglich, wenn Sie eine externe IP-Adresse anbinden. Zum Beispiel Bindung an http://*:80. Beachten Sie, dass die Bindung an http://localhost:80 nur an die Schnittstelle 127.0.0.1 bindet und daher von anderen Computern aus nicht zugänglich ist.

Visual Studio überschreibt Ihren Port. Sie können VS-Port ändern, um diese Datei bearbeiten Properties\launchSettings.json oder auch durch Code festgelegt:

 var host = new WebHostBuilder() 
      .UseKestrel() 
      .UseContentRoot(Directory.GetCurrentDirectory()) 
      .UseIISIntegration() 
      .UseStartup<Startup>() 
      .UseUrls("http://*:80") // <----- 
      .Build(); 

     host.Run(); 

Ein Schritt für Schritt Anleitung einer externe Konfigurationsdatei mit here zur Verfügung steht.

0

Sie können auch Code wie folgt

 IConfiguration config = new ConfigurationBuilder() 
     .AddCommandLine(args) 
     .Build(); 
     var host = new WebHostBuilder() 
     .UseConfiguration(config) 
     .UseKestrel() 
     .UseContentRoot(Directory.GetCurrentDirectory()) 
     .UseStartup<Startup>() 
     .Build(); 

und Ihre Anwendung über die Befehlszeile ein: Dotnet Lauf --server.urls http: // *: 5555

+0

Schön! Aber das funktioniert nur von der Kommandozeile. Weißt du wie/warum von Visual Studio der Port überschrieben wird? –

+0

ConfigurationBuilder hat keine Definition AddCommandLine. Vorhänge nach unten. – alerya

+0

@GerardoGrignoli Wenn Sie Ihre App in Visual Studio starten, wird die Datei "Properties/launchSettings.json" zum Festlegen der URL und des Ports verwendet. –