Azure函数在使用默认模板调用时抛出异常

时间:2018-02-09 23:59:38

标签: azure azure-functions azure-functions-runtime

我对如何制作一个简单的Azure功能感到困惑。在Visual Studio 2017(我使用的是15.5.6版本)中,我按照此处的说明创建了一个简单的项目:https://docs.microsoft.com/en-us/azure/azure-functions/functions-develop-vs

我的步骤:

  1. 制作新的Azure Functions项目,并将框架保留为默认的.Net Framework 4.6.1
  2. 在下一个屏幕上,我选择HttpTrigger,下拉列表显示“Azure Functions v1(.NET Framework)”
  3. 我将存储设置为我已在门户中创建的azure存储,并将授权设置为“admin”
  4. 一切都很好。我通过PostMan调用该函数并得到此错误:

    “发生了ScriptHost错误 执行函数时出现异常:Functions.Function1。 Microsoft.Azure.WebJobs.Host:异常绑定参数'log'。 Microsoft.Azure.WebJobs.Host:没有为参数'log'提供值。“

    作为参考,这里是他们创建的模板函数,我根本没有修改过:

    using System.Linq;
    using System.Net;
    using System.Net.Http;
    using System.Threading.Tasks;
    using Microsoft.Azure.WebJobs;
    using Microsoft.Azure.WebJobs.Extensions.Http;
    using Microsoft.Azure.WebJobs.Host;
    
    namespace TestFunc
    {
        public static class Function1
        {
            [FunctionName("Function1")]
            public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Admin, "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);
            }
        }
    }
    

    如果我删除“TraceWriter log”并调用“log.Info(....”然后再试一次,我会收到此错误:

    “发生了ScriptHost错误 执行函数时出现异常:Functions.Function1。 mscorlib:调用目标抛出了异常。 TestFunc:找不到方法:'System.Net.Http.HttpResponseMessage System.Net.Http.HttpRequestMessageExtensions.CreateResponse(System.Net.Http.HttpRequestMessage,System.Net.HttpStatusCode,!! 0)'。“

    我尝试将.Net版本更改为4.7但没有任何改变。我尝试将功能版本更改为v2而不是v1(即使它目前处于测试阶段),但也没有发生任何事情。模板添加的唯一NuGet包是Microsoft.NET.Sdk.Functions版本1.0.6。有一个1.0.7的更新可用,但这也无济于事。

    我不知道该尝试什么。这是默认模板。我有另一个功能项目工作正常,但这是在VS2015最新的时候做的,并且在你必须有那些function.json文件来制作你的预编译DLL的时候。我希望能够使用当前的系统,因为它似乎是最好的方式,但如果我不能让它工作,我可能会回到旧的做事方式。感谢。

0 个答案:

没有答案