为什么我的Route属性不适用于此Azure Functions v2?

时间:2018-04-16 14:30:43

标签: azure azure-functions

我创建了一个Azure函数,放置了一个Route属性,它不起作用。

如果我输入Route参数,那么它可以工作。

public static class Function1
{
    [FunctionName("StartUserSession")]
    [Microsoft.AspNetCore.Mvc.Route("Client/StartUserSession")]
    public static IActionResult StartUserSession([HttpTrigger(AuthorizationLevel.Function, methods: new string[] { "get", "post" }
    //, Route ="Client/StartUserSession"
    )]HttpRequest req, TraceWriter log)
    {
        var UserId = req.Query["UserId"];

        return new OkObjectResult($"StartUserSession, O UserId informado é {UserId}");
    }

如果我使用路线属性,当我跑步时,会出现:

Route Attribute

如果我使用Route参数,那么:

Route Parameter

如何使Route属性有效?

1 个答案:

答案 0 :(得分:0)

正如@Mikhail所提到的,属性[Microsoft.AspNetCore.Mvc.Route("")]在Azure功能中不起作用。

Azure Function有自己的路由操作,它是HttpTrigger属性中包含的属性,作为您使用的参数。 或者,如果您使用c#脚本(.csx)开发Azure功能,则可以根据custom-http-endpoint在@Marie建议的函数中在function.json文件中定义路由。

默认情况下,Azure Functions在所有函数上都有一个路由前缀/api/,就像WebApi一样,可以避免与ASP.NET MVC路由冲突。