如何更改Asp.Net核心应用程序的端口号?

时间:2016-08-04 00:03:38

标签: asp.net-core .net-core

我在project.json中添加了以下部分。

  "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"
  },

但是,当使用dotnet myapp.dll运行时,它仍会显示“正在收听:http://localhost:5000”?

顺便说一句,来自其他机器的客户能够访问该服务吗?

16 个答案:

答案 0 :(得分:26)

是的,如果您绑定任何外部IP地址,这将可从其他计算机访问。例如绑定到http://*:80。请注意,绑定到http://localhost:80只会绑定到127.0.0.1接口,因此无法从其他计算机访问。

Visual Studio正在覆盖您的端口。您可以更改VS端口编辑此文件Properties\launchSettings.json,或者按代码设置它:

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

        host.Run();

使用外部配置文件的分步指南here

答案 1 :(得分:10)

在Asp.net core 2.0 WebApp中,如果您使用的是visual studio搜索 LaunchSettings.json 。我正在添加我的LaunchSettings.json,您可以更改端口号,因为您可以看到。

enter image description here

答案 2 :(得分:5)

在Visual Studio 2017中,我们可以从LaunchSetting.json更改端口号

在“属性”-> LaunchSettings.json中。

打开LaunchSettings.json并更改端口号。

Launch

更改json文件中的端口号

enter image description here

答案 3 :(得分:5)

只需使用 dotnet YouApp.dll --urls http://0.0.0.0:80

附言我不知道为什么我每次都需要用谷歌搜索它,而且每次它都没有出现。所以就是这里了。

答案 4 :(得分:3)

.UseUrls("http://*:80")中使用以下一行代码Program.cs

,从而将.UseStartup<Startup>()

更改为

{.UseStartup<Startup>() .UseUrls("http://*:80")

答案 5 :(得分:3)

必须更改 3 个文件 appsettings.json(请参阅最后一节 - kestrel),launchsettings.json - applicationurl 已注释掉,Startup.cs 中有 2 行更改

appsettings.json 文件中添加以下代码,并根据需要移植到任何端口。

  },

 "Kestrel": {

   "Endpoints": {

     "Http": {

       "Url": "http://localhost:5003"

     }

   }

 }

 }

使用以下几行修改 Startup.cs

using Microsoft.AspNetCore.Server.Kestrel.Core;

services.Configure<KestrelServerOptions>(Configuration.GetSection("Kestrel"));

答案 6 :(得分:1)

我们可以使用此命令通过Windows Powershell在不带IIS和Visual Studio的单独端口上运行宿主项目。 Krestel Web服务器的默认值为5001

$env:ASPNETCORE_URLS="http://localhost:22742" ; dotnet run

答案 7 :(得分:1)

在您的hosting.json中 将"Url": "http://localhost:80"替换为"Url": "http://*:80",您现在可以通过http://your_local_machine_ip:80访问您的应用程序,例如http://192.168.1.4:80

答案 8 :(得分:1)

在 appsetting.json 中

{ “调试模式”:假, “网址”:“http://localhost:8082” }

答案 9 :(得分:0)

您也可以像这样编码

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

并通过命令行设置应用程序:dotnet run --server.urls http:// *:5555

答案 10 :(得分:0)

转到您的program.cs文件,添加UseUrs方法来设置您的网址,请确保您不使用保留的网址或端口

 public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()

                // params string[] urls
                .UseUrls(urls: "http://localhost:10000")

                .Build();
    }

答案 11 :(得分:0)

所有其他答案仅占http = ProxyManager("https://91.208.39.70:8080", cert_reqs='CERT_REQUIRED', ca_certs='f:/cert/certs.pem') 网址。如果网址为HTTP,请执行以下操作,

  1. 在API项目的“属性”下打开https

    enter image description here

  2. 更改launchsettings.json下的sslPort

示例iisSettings -> iisExpress如下所示

launchsettings.json

答案 12 :(得分:0)

对我有用。

我使用Asp.net core 2.2asp.net core 2.1和更高版本支持这种方式。

Kestrel文件中添加appsettings.json部分。 像这样:

{
  "Kestrel": {
    "EndPoints": {
      "Http": {
        "Url": "http://localhost:4300"
      }
    }
  },
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}

Startup.cs中的

public Startup(IConfiguration configuration, IHostingEnvironment env)
{
      var builder = new ConfigurationBuilder()
         .SetBasePath(env.ContentRootPath)
         .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
         .AddEnvironmentVariables();

      Configuration = builder.Build();
}

答案 13 :(得分:0)

也许是因为我还没有使用Core。我的项目没有LaunchSettings.json文件,但确实提示我查看项目属性。我在“ Web”选项卡下找到了它,只是更改了项目URL: enter image description here

答案 14 :(得分:0)

如果您要在本地开发时在特定的60535端口上运行,但又想在舞台/产品环境服务器的80端口上运行应用程序,则执行此操作。

添加到launchSettings.json中的environmentVariables部分

"ASPNETCORE_DEVELOPER_OVERRIDES": "Developer-Overrides",

,然后将Program.cs修改为

public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseKestrel(options =>
                    {
                        var devOverride = Environment.GetEnvironmentVariable("ASPNETCORE_DEVELOPER_OVERRIDES");
                        if (!string.IsNullOrWhiteSpace(devOverride))
                        {
                            options.ListenLocalhost(60535);
                        }
                        else
                        {
                            options.ListenAnyIP(80);
                        }
                    })
                    .UseStartup<Startup>()
                    .UseNLog();                   
                });

答案 15 :(得分:0)

<块引用>

来自其他机器的客户端能否访问该服务?

添加到 appsettings.json

  "Urls": "http://0.0.0.0:8082",