发布时无法命中 AspNetCore 3.1 MVC API 端点
Cannot hit AspNetCore 3.1 MVC API endpoints when published
AspNetCore 3.1 MVC API。常规启动
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
当 运行 在本地主机上时,我可以访问所有端点。当我发布时,所有端点 return 404.
为了测试我发布到正确的位置,我添加了一个显示在浏览器中的端点
public IActionResult Index()
{
return Content("Users Index");
}
当我浏览到 https://subweb.mainweb/users/api/users/index
时,我在浏览器中看到 Users Index
return,但所有其他端点 return 404。
控制器装饰
[Route("api/Users/[action]")]
public class UsersController : ControllerBase
所有其他端点都经过修饰,例如
[HttpGet]
[ActionName(nameof(IsRegisteredUser))]
public IActionResult IsRegisteredUser()
但我看不出这对 运行 本地和服务器有何影响。
怎么可能所有端点都在本地主机中可用,但发布时只有测试端点可用?我从哪里开始看?
When I browse to https://subweb.mainweb/users/api/users/indexI see Users Index returned in the browser, but all other endpoints return 404.
根据您上面的示例 URL,您似乎将 ASP.NET Core Web API 应用程序作为子应用程序(子应用程序)托管在 /users
在你的服务器上。
要访问端点,您应该确保在 URL 中包含子应用程序的路径库,否则会导致 404 - Not Found 错误。
AspNetCore 3.1 MVC API。常规启动
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
当 运行 在本地主机上时,我可以访问所有端点。当我发布时,所有端点 return 404.
为了测试我发布到正确的位置,我添加了一个显示在浏览器中的端点
public IActionResult Index()
{
return Content("Users Index");
}
当我浏览到 https://subweb.mainweb/users/api/users/index
时,我在浏览器中看到 Users Index
return,但所有其他端点 return 404。
控制器装饰
[Route("api/Users/[action]")]
public class UsersController : ControllerBase
所有其他端点都经过修饰,例如
[HttpGet]
[ActionName(nameof(IsRegisteredUser))]
public IActionResult IsRegisteredUser()
但我看不出这对 运行 本地和服务器有何影响。
怎么可能所有端点都在本地主机中可用,但发布时只有测试端点可用?我从哪里开始看?
When I browse to https://subweb.mainweb/users/api/users/indexI see Users Index returned in the browser, but all other endpoints return 404.
根据您上面的示例 URL,您似乎将 ASP.NET Core Web API 应用程序作为子应用程序(子应用程序)托管在 /users
在你的服务器上。
要访问端点,您应该确保在 URL 中包含子应用程序的路径库,否则会导致 404 - Not Found 错误。