.net-core - 升级到 .Net Core 2.2 后获取 405 MethodNotAllowed
问题描述
- ASP.Net 核心 2.2
- Visual Studio 2019 专业版
将 .Net Core 从 2.1 升级到 2.2 后对控制器运行集成测试
在为控制器上不存在的 URL 运行测试用例时,我得到 405 MethodNotAllowed。
我希望得到状态码 404(与升级到 2.2 之前一样),但得到 405 MethodNotAllowed。
控制器:
[Authorize]
[Authorize(Policy = Constants.APIPolicies.OrgId)]
[ResponseCache(Location = ResponseCacheLocation.None, NoStore = true, Duration = 0)]
[Route("api/patient")]
[Produces("application/json")]
public class PatientController : Controller {
...
...
[Audit(Constants.AuditParameters.PatientUidRoot)]
[HttpPost("v1/{" + Constants.RouteParams.orgId + "}/ResolvePatientId")]
public async Task<IActionResult> GetPatientIdByUID([FromRoute] Guid orgId, [FromBody] UidModel patientUid)
{
...
}
...
...
}
测试:
patientUid = new UID(validRoot, validExtension);
response = await _mApiHostFixture.Client.PostAsync(string.Format("/api/patient/v1/{0}/ResolvePatientIdxx", orgId), new JsonContent(patientUid));
response.StatusCode.Should().Be(HttpStatusCode.NotFound);
解决方案
推荐阅读
- c# - 如何枚举设备?
- ms-access - 单元格中字符串的提取部分
- java - ThreadLocal 竞争条件
- sql - 使用 SQL 将单词的第一个字母转换为大写
- reactjs - 如何将光标移动到行尾?
- javascript - 如何使用 jQuery 从字符串中删除输入标签?该字符串还包含其他 html 标记
- reactjs - 反应 DatePicker 12AM 到 12PM
- javascript - 使用 Sancuary Either 执行 Fluture 任务
- python - 无法分配形状 (35126, 224, 224, 3) 和数据类型 float32 的数组
- r - 使用 dot dot dot (...) 表示从 data.table 对象的自定义函数返回的列