我获取Azure功能时收到500状态代码

时间:2018-04-25 11:00:25

标签: c# azure http azure-functions nreco

我正在尝试向使用NReco HtmlToImageConverter的Azure功能(v1)发出Get请求,但由于某种原因,我获得了包含以下消息的500状态代码

  

没有MediaTypeFormatter可用于从媒体类型为“application / octet-stream”的内容中读取“对象”类型的对象。

编辑:我认为问题不在于here

我将字面上的空函数V1发布到Azure,但它不起作用。

 [FunctionName("Function1")]
    public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
    {
        log.Info("C# HTTP trigger function processed a request.");

        // parse query parameter
        string name = req.GetQueryNameValuePairs()
            .FirstOrDefault(q => string.Compare(q.Key, "name", true) == 0)
            .Value;

        // Get request body
        dynamic data = await req.Content.ReadAsAsync<object>();

        // Set name to query string or body data
        name = name ?? data?.name;

        return name == null
            ? req.CreateResponse(HttpStatusCode.BadRequest, "Please pass a name on the query string or in the request body")
            : req.CreateResponse(HttpStatusCode.OK, "Hello " + name);
    }

我不知道它是否相关,但是当我发布时,我得到以下对话框(我目前用“否”回答)

enter image description here

1 个答案:

答案 0 :(得分:0)

在HTTP请求中,您需要将Content-Type设置为:

contentType: 'application/json; charset=utf-8'

  

Azure主机上的功能版本与本地版本不匹配。

本地的函数运行时似乎是v1,但Portal上的函数可能是“beta”,因此它们的版本不匹配。

因此,您可以在门户网站上创建一个新的Azure功能,其默认运行时版本为“~1”。在功能应用设置中检查您的Portal上的运行时,如下所示: enter image description here

然后将您的本地功能发布到Azure,它将正常工作。

相关问题