Can*_*vas 6 c# azure json.net nuget azure-functions
我使用Azure Http Trigger创建了一个开箱即用的Azure功能应用程序.这给了我下面的代码.我所更新的是我正在将HttpRequest主体转换为我的Helper类.
这是代码
public static class TriggerTest
{
[FunctionName("TriggerTest")]
public static IActionResult Run([HttpTrigger(AuthorizationLevel.Function, "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();
Helper data = JsonConvert.DeserializeObject<Helper>(requestBody);
name = name ?? data?.value;
return name != null
? (ActionResult)new OkObjectResult($"Hello, {name}")
: new BadRequestObjectResult("Please pass a name on the query string or in the request body");
}
}
public class Helper
{
public string value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行它编译正常,但随后控制台被垃圾邮件与下面
发生了ScriptHost错误
System.Private.CoreLib:执行函数时的异常:TriggerTest.TestingAzure.FunctionApp:无法加载文件或程序集'Newtonsoft.Json,Version = 11.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'.无法找到或加载特定文件(HRESULT异常:0x80131621).System.Private.CoreLib:无法加载文件或程序集'Newtonsoft.Json,Version = 11.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'
所有Nuget软件包都引用了Newtonsoft 11.0.2,这是Microsoft.NET.Sdk.Functions引用的内容.该项目是.NET Standard 2.0项目.我引用的Nuget包是
我在本地运行它并且还没有在Azure中测试它,但是我需要它在本地工作以进行测试.
从Visual Studio 2017下载的CLI也是2.0.1-beta.25
Visual Studio的Azure功能和Web作业工具是15.10.2009.0版
对于 v2 函数,Function sdk 1.0.19(>=1.0.14) 默认引用 Newtonsoft.Jon v11.0.2。该错误是由您的 VS 使用的 CLI 引起的。2.0.1-beta.25太旧了,VS中最新的是2.0.1-beta.38。
解决方案是确保下载成功。另外,Microsoft.Azure.WebJobs.ServiceBus应该是3.0.0-beta8。
删除旧的 CLI 文件夹%localappdata%\AzureFunctionsTools。
重新启动 VS 并创建新的 Azure 函数。在创建对话框中等待 VS 下载新的 CLI 和模板,直到我们看到提示更改为“更新已准备就绪”。
如果一段时间后(您这边需要下载 200M 文件)没有看到更新已准备好,请%localappdata%\AzureFunctionsTools再次检查。如果只有文件夹 2.0.1-beta.25 充满了内容,请尝试重复上述步骤或手动更新此答案的部分内容,需要访问%localappdata%\AzureFunctionsTools\feed.json找到最新版本的下载网址(feed version=2.5.2 对现在)。
| 归档时间: |
|
| 查看次数: |
778 次 |
| 最近记录: |