在ASP.NET开发中,端口号是一个至关重要的概念,它决定了应用程序在网络中的通信端点,以下是对ASP.NET端口号的详细解析:
1、默认端口号
ASP.NET Development Server:在Visual Studio中使用ASP.NET Development Server运行文件系统网站时,默认情况下会在随机选择的localhost端口上调用Web服务器,测试名为MyPage.aspx的页时,该页的URL可能是http://localhost:31544/MyPage.aspx。
IIS Express:使用IIS Express作为服务器时,默认端口号通常为8080(对于HTTP)和44300(对于HTTPS),不过,这些默认端口号也可能会因系统配置或安装的其他软件而有所变化。
ASP.NET Core:在.NET 8之前,默认情况下会尝试使用端口80(对于HTTP)和443(对于HTTPS),但从.NET 8开始,默认的容器映像中配置的ASP.NET Core端口已从端口80更新为8080,以避免在某些环境中需要特权端口的问题。
2、配置文件中的端口号设置
launchSettings.json:这是ASP.NET Core项目中使用的配置文件,用于设置在不同环境下(如开发环境或生产环境)运行应用程序时的应用程序设置,可以在其中为不同的环境配置特定的端口号。
{ "profiles": { "ASP.NET Core": { "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, "applicationUrl": "https://localhost:5001;http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } }
appsettings.json:可以在此文件中配置Kestrel节点下终结点的默认URL,从而设置端口号。
{ "Kestrel": { "EndPoints": { "Http": { "Url": "http://:9000" }, "Https": { "Url": "https://:9001" } } } }
host.json:可以在该文件中添加一个名为“urls”的配置项来指定端口号,不过这种方式相对较少使用。
3、代码中的端口号设置
Program.cs:在.NET 6及以上版本中,可以在Program类的Main方法或CreateHostBuilder方法中通过配置WebHost来设置端口号。
使用UseUrls
方法:
builder.WebHost.UseUrls("http://:9000");
// 或者设置多个URL
builder.WebHost.UseUrls(new[] { "http://:9000", "https://:9001" });
使用UseKestrel
方法:
builder.WebHost.ConfigureKestrel(options =>
{
options.ListenLocalhost(8090, opts => opts.Protocols = HttpProtocols.Http1);
});
使用app.Urls.Add
方法(.NET 6以上版本):
app.Urls.Add("http://localhost:9000");Startup.cs:在Configure方法中可以通过配置Kestrel来设置端口号,但这种方法不推荐,因为写死了端口号不便于维护。
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
app.UseKestrel(serverOptions =>
{
serverOptions.ListenLocalhost(5000, listenOptions =>
{
listenOptions.Protocols = HttpProtocols.Http1;
});
});
}
}
4、环境变量中的端口号设置
可以通过设置环境变量来指定ASP.NET Core应用程序的端口号,设置ASPNETCORE_HTTP_PORTS
环境变量为所需的端口号列表(以分号分隔),应用程序将使用这些端口号进行监听,这种方式在容器化部署等场景中非常常用。
无论是默认端口、配置文件、代码还是环境变量,ASP.NET都提供了灵活多样的方式来设置和管理端口号,开发者可以根据实际需求选择合适的方式进行配置,以确保应用程序能够稳定、高效地运行在指定的网络端口上。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1627092.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复