Xamarin Android访问Plesk托管的ASP.NET Core API返回404错误如何解决
Plesk Windows托管ASP.NET API调用返回404问题排查方案
1. 先确认HttpClient路径拼接规则
- 你的
AppSettings.ApiUrl结尾必须加斜杠,示例:https://yourdomain.com/yourapp/,不能写成https://yourdomain.com/yourapp - 调用
PostAsync时的路径不要加开头的斜杠,正确写法是PostAsync("api/Autoriza/Login", content),如果加了开头的/,HttpClient会忽略BaseAddress的后缀路径,直接请求域名根路径下的地址,大概率会404。
2. 检查Plesk站点ASP.NET配置
- 登录Plesk后台,进入对应站点的「ASP.NET设置」,确认部署的.NET运行时版本和本地开发环境完全一致
- 检查站点根目录下的
web.config文件,确认ASP.NET Core模块配置正确:
Plesk自动生成的配置可能会写错dll路径或者hostingModel参数,导致路由无法匹配返回404。<aspNetCore processPath="dotnet" arguments=".\你的项目名.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
3. 确认API路由属性配置
- 你的Login接口必须显式标注
[HttpPost]属性和对应的路由规则,示例:
本地IIS Express路由规则宽松,缺失属性可能也能运行,但Plesk的IIS严格匹配路由规则,缺失属性就会返回404。[ApiController] [Route("api/[controller]")] public class AutorizaController : ControllerBase { [HttpPost("Login")] public IActionResult Login(inLogin inusuario) { // 你的业务逻辑 } }
4. 排查Plesk重写规则冲突
- 如果你在Plesk中配置了HTTP转HTTPS、伪静态等重写规则,先临时关闭规则再测试请求
- 部分不规范的重写规则会丢弃POST请求的Body,或者重定向时修改请求路径,导致路由匹配失败。
5. 确认大小写与路径一致性
- Plesk的IIS默认开启大小写敏感匹配,确认你请求的路径和API路由定义的大小写完全一致,包括控制器名、方法名的大小写。
内容的提问来源于stack exchange,提问作者Wesley Henrique dos Santos
相关产品推荐
相关产品推荐

