当我在本地调试并运行 **GetEntityReport ** 但没有结果时,我得到 404,这很棒。当我将其发布到远程服务器时,日志报告 404,但似乎返回了 403...这不太好。
这是我的控制器,我只包含导致问题的功能:
namespace ReportServices.Controllers
{
private readonly IReportServiceRepo _repository;
private readonly IMapper _mapper;
private readonly ILogger<ReportServicesController> _logger;
public ReportServicesController(IReportServiceRepo repository, IMapper mapper,
ILogger<ReportServicesController> logger)
{
_repository = repository;
_mapper = mapper;
}
// GET api/reportservice/entities/{id}/2022/11/test
[AllowAnonymous]
[HttpGet]
[Route("entities/{entityId:int}/{year:int:maxlength(4)}/{month:int:maxlength(2)}/{title}", Name = "GetEntityReport")]
[ProducesResponseType(typeof(IList<ReportReadSimpleDto>), StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public ActionResult<IList<ReportReadSimpleDto>> GetEntityReport(int entityId,
int year, int month, string title)
{
var reportsItem = _repository.SearchForReport(entityId, year, month, title);
if (reportsItem != null && reportsItem.Count > 0)
{
return Ok(_mapper.Map<IEnumerable<ReportReadSimpleDto>>(reportsItem));
}
return NotFound("No report found for this criteria.");
}
}
记录内容: 请求开始 HTTP/1.1 GET https://www.skagitcounty.net/Apps/REST/ReportService/api/reportservice/entities/1/2021/1/test
请求完成 HTTP/1.1 GET https://www.skagitcounty.net/Apps/REST/ReportService/api/reportservice/entities/1/2021/1/test - - - 404 - text/plain;+charset= utf-8 38.6428ms
远程服务器上安装的托管捆绑包是 8...这可能是导致此问题的原因吗?也许是 IIS 设置?
有什么想法吗?
提前谢谢您!!
如果我使用具有结果对象的查询,则结果是完美的(200 OK)。奇怪。
这都是由于父站点中的自定义错误处理造成的。
添加类似以下内容:
<httpErrors errorMode="DetailedLocalOnly">
<clear />
</httpErrors>
解决了我的问题。