.net core 针对.Net标准2.0的新VS Azure功能项目失败,出现InternalServerError

.net core 针对.Net标准2.0的新VS Azure功能项目失败,出现InternalServerError,.net-core,visual-studio-2017,asp.net-core-2.0,azure-functions,azure-functions-core-tools,.net Core,Visual Studio 2017,Asp.net Core 2.0,Azure Functions,Azure Functions Core Tools,我正在使用Visual Studio 15.7.6和Azure Functions V2以及Web作业工具15.0.40617.0,在我的开发机器上安装了.Net Core SDK 2.1.302 我可以创建一个新的Azure功能项目target.Net Standard 2.0,并在本地正常运行。但是,当我将其部署到Azure并执行时,它返回500 InternalServerError Visual Studio模板生成以下模板化代码: using System.IO; using Micr

我正在使用Visual Studio 15.7.6和Azure Functions V2以及Web作业工具15.0.40617.0,在我的开发机器上安装了.Net Core SDK 2.1.302

我可以创建一个新的Azure功能项目target.Net Standard 2.0,并在本地正常运行。但是,当我将其部署到Azure并执行时,它返回500 InternalServerError

Visual Studio模板生成以下模板化代码:

using System.IO;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Azure.WebJobs.Host;
using Newtonsoft.Json;

namespace FunctionApp1
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequest req, TraceWriter log)
        {
            log.Info("C# HTTP trigger function processed a request.");

            string name = req.Query["name"];

            string requestBody = new StreamReader(req.Body).ReadToEnd();
            dynamic data = JsonConvert.DeserializeObject(requestBody);
            name = name ?? data?.name;

            return name != null
                ? (ActionResult)new OkObjectResult($"Hello, {name}")
                : new BadRequestObjectResult("Please pass a name on the query string or in the request body");
        }
    }
}
Visual Studio是否与工具链版本不同步

我注意到,如果我使用C#script(CSX)在线创建函数,下面的方法可以工作,但我不知道它使用的函数版本是什么:

using System.Net;
using System.Web;

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
    return req.CreateResponse(HttpStatusCode.OK, "Hello world!");
}
使用System.Net;
使用System.Web;
公共静态异步任务运行(HttpRequestMessage请求、TraceWriter日志)
{
return req.CreateResponse(HttpStatusCode.OK,“Hello world!”);
}
如果我添加Microsoft.AspNetCore.Mvc并尝试使用IActionResults,它将无法编译

我猜我遗漏了一些兼容性问题

是否有一个示例VisualStudio项目使用在本地和Azure运行时工作的功能V2和.Net标准


-约翰

等等,我想我可能刚想出来。看起来新的Azure函数默认为v1运行时(可以理解)。如果我把它改成“beta”,它就成功了

我想发布这篇文章,以节省其他人花在这上面的时间

我的解释正确吗


-John

是的,v1是完整的框架,beta版是v2是.NET标准谢谢@Mikhail。我觉得我错过了一些基本的公共文档,其中提到,你会有一个指针吗?事实上,现在回头看看,设置已经不存在了-现在呢?