Asp.Net Core" Web API"返回404的路由未找到

时间:2018-03-16 14:31:03

标签: c# asp.net-core asp.net-core-webapi

在具有Asp.net Core 2的Windows 7 Dev计算机上,所有返回数据(而不是视图)的API特定路由都可以正常工作。

开发人员最近在他的新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 body:

{
    "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..."
}

1 个答案:

答案 0 :(得分:0)

您应该将Route属性应用于控制器方法(操作),还可以指向与路由关联的http谓词。 看一下t his documentation,它会对你有帮助。