繁体   English   中英

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

[英]Asp.Net Core "Web API" Routes Returning 404 Not Found

在具有 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 主体:

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

您应该将 Route 属性应用于控制器方法(操作),并且您还可以指向与路由关联的 http 动词。 看看他的文档,它会帮助你。

最新的 Core 3.1 Asp.Net Core Web App 模板发生在我身上。 问题是默认的接线是这样的:

app.UseEndpoints(endpoints => {
    endpoints.MapRazorPages();
    endpoints.MapControllers();
});

但是,它必须是这样的:

app.UseEndpoints(endpoints => {
    endpoints.MapRazorPages();
    endpoints.MapControllers();
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}"
    );
});

上一个答案将我引向了解决方案,但我想发布一个更明确的答案,以防对其他人有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM