我目前正在構建一個 ASP.NET Core 應用程式,到目前為止還沒有使用控制器,因為一切都由 SignalR 集線器管理。我決定添加一個 API 控制器(帶有屬性)來處理來自客戶端的 API 請求,例如從資料庫中獲取。這是我的 API 控制器:
[ApiController]
[Route("api/[controller]")]
public class BaseApiController : ControllerBase
{
private IMediator _mediator;
protected IMediator Mediator => _mediator ??= HttpContext.RequestServices.GetService<IMediator>();
}
這是從 API 控制器派生的 Messages 控制器:
public class MessagesController : BaseApiController
{
private readonly DataContext _context;
public MessagesController(DataContext dataContext)
{
_context = dataContext;
}
[HttpGet]
public async Task<ActionResult<List<Message>>> GetMessages() =>
await Mediator.Send(new List.Query());
}
出于某種原因,當從客戶端發送請求時,我收到 404。我認為,這是由于 API 和 IIS 啟動之間的某種“沖突”而發生的。對不起,如果這聽起來很愚蠢,我是新手。
如果通過 IIS 使用 API 控制器啟動專案沒有問題,那么我會尋找其他地方。
uj5u.com熱心網友回復:
在 Startup.cs 中,您需要將以下代碼添加到 ConfigureServices()
services.AddControllers();
并 Configure(IApplicationBuilder app)
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
...
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/364112.html
