可以使用 ASP.NET Core 的 IConfiguration 和 IWebHostEnvironment 接口来获取当前应用程序的配置和环境信息,然后使用这些信息来确定站点的执行端口号。
以下是具体的代码实现示例:
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using System;
public class Program
{
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables()
.AddCommandLine(args)
.Build();
var webHost = new WebHostBuilder()
.UseKestrel()
.UseConfiguration(config)
.UseStartup()
.Build();
var port = webHost.Services.GetService().ServerPort;
Console.WriteLine($"The site is running at port {port}.");
webHost.Run();
}
}
在上面的示例中,我们首先创建了一个 IConfiguration 对象,该对象从 appsettings.json、环境变量和命令行参数中加载配置信息。然后,我们使用这个 IConfiguration 对象来创建一个 WebHostBuilder 对象,并使用其 UseKestrel() 方法指定使用 Kestrel 作为 Web 服务器,UseConfiguration() 方法指定使用刚刚创建的 IConfiguration 对象,UseStartup
最后,我们调用 IWebHostEnvironment.ServerPort 属性来获取当前站点的执行端口号,并将其输出到控制台中。
注意,在上面的示例中,我们使用了 Microsoft.AspNetCore.Hosting 命名空间中的类和接口,这是因为我们正在使用 ASP.NET Core。如果你正在使用 ASP.NET Web Forms 或 MVC,那么你需要使用 System.Web.Hosting 命名空间中的类和接口来获取当前站点的执行端口号。