两层架构下WebForms项目无法访问ASP.NET Core Web API求助
我采用两层架构,主项目为WebForms应用程序,子项目为包含API端点的ASP.NET Core Web API,目前无法访问该API。
相关截图
- 文件结构:

- API端点配置:

- 测试访问位置:

确认API独立运行状态
单独启动ASP.NET Core Web API子项目,查看控制台输出的启动地址,直接在浏览器或Postman中访问该地址下的API端点,验证API自身是否能正常响应。若独立运行失败,检查Program.cs/Startup.cs中是否正确配置路由(如app.MapControllers())和必要中间件。配置跨域策略(CORS)
若WebForms与API运行在不同端口/域名下,需在API中添加跨域配置。在Program.cs中加入以下代码:builder.Services.AddCors(options => { options.AddPolicy("AllowWebForms", policy => policy.WithOrigins("http://localhost:WebForms端口号") .AllowAnyHeader() .AllowAnyMethod()); }); // 放在app.UseRouting()之后,app.MapControllers()之前 app.UseCors("AllowWebForms");替换
WebForms端口号为实际运行的端口。校验请求地址正确性
检查WebForms中调用API的请求URL,确保和API实际启动地址、端点路径完全匹配,避免端口、路径拼写错误。设置多项目启动
在Visual Studio中右键解决方案→属性→启动项目,选择多启动项目,将WebForms和API项目的启动动作均设为启动,确保调试时两个项目同时运行。排查端口与防火墙问题
用命令netstat -ano | findstr :API端口号检查端口是否被占用,若占用则修改API的launchSettings.json更换端口。同时确认本地防火墙未阻止API端口的网络请求。查看错误日志
查看API控制台的启动日志,检查是否有路由加载、服务启动失败等信息;WebForms调用时,查看浏览器控制台的网络请求详情(如404、500、跨域错误),根据具体提示定位问题。
内容的提问来源于stack exchange,提问作者Waseem Hassan

