在安装了Asp.net Core 2的Windows 7开发机上,我们所有返回数据(非视图)的API特定路由都能正常工作。
最近一位开发者在他的新Windows 10机器上设置了API。当我们在Postman或swagger中运行路由时,他只能让一个特定的GET路由工作(额外提示-恰好这是唯一不调用EntityFramework的路由)。
所有其他路由都返回404 Not Found,就像URL不存在一样。这不是我们的代码返回404,而是平台本身返回。
由于404是服务器返回的,所以没有有用的日志记录。
我还在Win Server 2016机器上部署和测试了它,并遇到了完全相同的问题。
我在这个服务器上做的最后一件事就是安装了Asp.net Core 2 SDK,但没有任何效果。
一些代码:
最近一位开发者在他的新Windows 10机器上设置了API。当我们在Postman或swagger中运行路由时,他只能让一个特定的GET路由工作(额外提示-恰好这是唯一不调用EntityFramework的路由)。
所有其他路由都返回404 Not Found,就像URL不存在一样。这不是我们的代码返回404,而是平台本身返回。
由于404是服务器返回的,所以没有有用的日志记录。
我还在Win Server 2016机器上部署和测试了它,并遇到了完全相同的问题。
我在这个服务器上做的最后一件事就是安装了Asp.net Core 2 SDK,但没有任何效果。
一些代码:
[Produces("application/json")]
[Route("api/v1/Signatures/Request")]
public class SignatureRequestController : ControllerBase
[HttpPost]
[Route("")]
public async Task<SignatureRequestBaseResponse>
CreateSignatureRequestAsync([FromBody]SignatureRequest signatureRequest)
示例POST网址:
http://localhost/My.API/api/v1/signatures/request/
示例JSON请求体:
{
"clientApplicationInstanceId" : "4318704B-7F90-4CAE-87A9-842F2925FE45",
"facilityId" : "PT",
"contact": "me@my.com",
"documentInstanceGuid" : "cc46c96f-cd78-448e-a376-cb4220d49a52",
"messageType" : "1",
"localeId": 1,
"field":
{
"fieldId": 45,
"signatureType": "4",
"displayName": "Short Display Name from iMed4Web",
"signerNameCaption": "signer name caption",
"signerAddressCaption": "address caption",
"signerCityStateZipCaption": "city state zip caption"
},
"documentPreviewHtml": "too long to show..."
}
Startup.cs
和此控制器中的属性路由)。在路由中,第一个匹配成功的路由将被执行,所以很可能存在另一个您没有意图匹配的路由。 - undefined