.NET 7集成Flutter报错:Program类未找到Configure相关方法
.NET 7 Web API 配置本地网络访问解决方法
错误原因
.NET 7采用顶级语句的简化项目结构,移除了传统的Startup.cs,也不会在Program类中默认生成Configure或ConfigureProduction方法。你沿用旧版的WebHostBuilder+UseStartup<Program>写法时,框架找不到所需的配置方法,因此报错。
推荐解决方案(符合.NET 7规范)
直接在Program.cs的顶级语句中配置监听地址,无需使用WebHostBuilder的冗余写法:
var builder = WebApplication.CreateBuilder(args); // 添加这行代码,指定要监听的地址和端口 builder.WebHost.UseUrls("http://localhost:5000", "http://192.168.0.243:5000"); // 注册服务(比如控制器) builder.Services.AddControllers(); var app = builder.Build(); // 配置中间件(按需添加) app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); app.Run();
备选方案(兼容旧写法)
如果一定要保留WebHostBuilder的写法,需要在Program类中手动实现Configure和ConfigureServices方法,满足UseStartup的要求:
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using System.IO; public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseUrls("http://localhost:5000", "http://192.168.0.243:5000") .UseIISIntegration() .UseStartup<Program>() .Build(); host.Run(); } // 必须实现的配置方法,用于设置中间件 public void Configure(IApplicationBuilder app) { app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); } // 必须实现的服务注册方法 public void ConfigureServices(IServiceCollection services) { services.AddControllers(); // 按需添加其他服务(如Swagger、CORS等) } }
额外注意事项
- 确保你的Flutter真实设备和运行Web API的电脑处于同一局域网
- 检查电脑防火墙是否允许5000端口的入站连接
- Flutter中发起请求时,使用局域网IP地址(如
http://192.168.0.243:5000/api/xxx)而非localhost
内容的提问来源于stack exchange,提问作者user21497668
相关产品推荐
相关产品推荐

