2016-11-14 58 views
0

我从quickstart guide创建了基本的Azure函数。按照教程,这个默认功能应该立即工作,但我得到一个错误。Azure函数:无法绑定参数'_return'来键入HttpResponseMessage

函数体:

using System.Net; 

public static async Task<HttpResponseMessage> Run(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); 
} 

错误消息:

Function ($HttpTriggerCSharp1) Error: Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.HttpTriggerCSharp1'. Microsoft.Azure.WebJobs.Host: Cannot bind parameter '_return' to type HttpResponseMessage&. Make sure the parameter Type is supported by the binding. If you're using binding extensions (e.g. ServiceBus, Timers, etc.) make sure you've called the registration method for the extension(s) in your startup code (e.g. config.UseServiceBus(), config.UseTimers(), etc.).

回答

4

您可以通过更改响应输出从$returnres结合名称解决这个问题现在。前者将在我们的下一个版本中很快开始工作,但尚未完成。看起来我们推出了一个功能模板更新,对于这个问题有点过早 - 我在我们的回购问题中创建了一个bug here。谢谢:)

+0

工作就像一个魅力,谢谢! –