Пользовательский номер порта для моего API, работающего в localhost - PullRequest
0 голосов
/ 26 марта 2020

У меня есть мой API, который работает на локальном хосте под портом 8000. Однако я просто хочу знать, нормально ли запускать мой API на любом порте, который я хочу (скажем, порт 1200, порт 5000 и c). Или есть какие-то определенные c порты, среди которых только я могу выбрать один для запуска моего API. Я новичок в этой веб-разработке и, следовательно, этот базовый c вопрос.

1 Ответ

0 голосов
/ 26 марта 2020

Да, все в порядке! Только убедитесь, что держитесь подальше от общих портов, таких как MySQL (3306) и остальных.

Вообще говоря, 5000-е - это те, которые я видел чаще всего. NET разработчики используют. Есть много способов сделать это!

через launchSettings:

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:63902",
      "sslPort": 44305
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": false,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "Brevity.Api": {
      "commandName": "Project",
      "launchBrowser": false,
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Или через Program.cs

public static IWebHostBuilder CreateWebHostBuilder(string[] args)
        {
            return WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .UseKestrel(options =>
                {
                    options.AddServerHeader = false;

                    // options.Listen(IPAddress.Any, 8080);         // http:*:80

                    var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
                    var isDevelopment = environment == Environments.Development;
                    var validateSSL = !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("SSLCERT_PATH"));

                    // HTTPS Configuration
                    if (!System.Diagnostics.Debugger.IsAttached && !isDevelopment && validateSSL)
                    {
                        var hasHttpsPortConfigured = int.TryParse(Environment.GetEnvironmentVariable("HTTPS_PORT")
                            , out var httpsPort);
                        if (!hasHttpsPortConfigured)
                        {
                            httpsPort = 5001; // Default port

                            Console.WriteLine("HTTPS port not configured! Self configuring to 5001.");
                        }

                        var certPath = Environment.GetEnvironmentVariable("SSLCERT_PATH");

                        var certPassword = Environment.GetEnvironmentVariable("SSLCERT_PASSWORD");

                        options.Listen(IPAddress.Any, httpsPort, listenOptions =>
                        {
                            var cert = new X509Certificate2(certPath, certPassword);

                            listenOptions.UseHttps(cert);
                        });
                    }
                });
        }

Рад, что вы используете. NET Core. Мы только начинаем становиться одним из лучших языков для изучения программирования!

...