引自免费微信小程序:皆我百晓生。
要让 .NET Core MVC 应用程序在默认端口(80或443)上运行,你需要在开发环境中配置本地 IIS Express 或在生产环境中使用反向代理(如 IIS、Nginx 或 Apache),并映射到正确端口。
要让 .NET Core MVC 应用程序在不指定端口号的情况下运行,你需要确保应用监听的是默认的 HTTP 端口(即 80),或者如果你的应用正在开发环境中运行,并且没有其他服务占用 80 端口,你可以选择监听 5000 端口,这是 .NET Core 的默认开发端口。
首先,在 Program.cs 文件中的 Main 方法里,找到 CreateHostBuilder(args).Build().Run(); 这一行。在这个方法调用之前添加以下代码,将监听端口设置为 5000:
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
namespace YourNamespace
{
public class Program
{
public static void Main(string[] args)
{
var host = CreateHostBuilder(args).ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
// 设置监听端口为 5000
webBuilder.UseKestrel(options => options.ListenLocalhost(5000));
}).Build();
host.Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => { });
}
}
接下来,确保在 Startup.cs 中的 ConfigureServices 方法中注册了 UseRouting:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.DependencyInjection;
namespace YourNamespace
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
// 添加路由支持
services.AddRouting();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}
}
}
现在,你应该可以直接通过 http://192.168.1.11/ 访问你的应用程序,而不需要指定端口号。如果这仍然不起作用,可能是因为防火墙、操作系统或其他正在运行的服务阻止了端口 5000 或者是 80。在这种情况下,你需要检查并允许这些端口的流量。如果你在开发环境中遇到问题,确保没有其他的 .NET Core 应用程序也在监听相同的端口。