gpt4 book ai didi

在 Linux AZ 函数中部署时找不到 Azure 函数错误文件

转载 作者:行者123 更新时间:2023-12-03 03:41:55 26 4
gpt4 key购买 nike

我正在尝试从源目录读取 AZ 函数中的 Json 文件。在 Windows 计算机上本地时,它工作正常,但在 Linux AZ 功能应用程序中部署时出现错误“找不到文件”。使用以下代码读取 Json 文件

using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using System.Data.SqlClient;
using System.Net.Http;
using System.Text;
using System.Net;
using System.Collections.Generic;
using System.Reflection;

namespace FunctionAppBrands
{
public static class FunctionGetData
{
[FunctionName("GetData")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = "GetData")] HttpRequest req,
ILogger log)
{


log.LogInformation("C# HTTP trigger function processed a request.");

string allText = GetData();
var data = JsonConvert.DeserializeObject<Root>(allText).Recordset;
return new JsonResult(data);



}

private static string GetData()
{
//File Placed in souce directory folder ReadData
string text= File.ReadAllText(@"ReadData\" "test.json");
return text;
}

public class Root
{
public List<Dictionary<string, object>> Recordset { get; set; }
}

}
}

最佳答案

首先,您应该检查(使用 Kudu 或 SSH)该文件是否存在于应用服务中。如果没有,您可能错过了在 *.csproj 中将该文件设置为输出目录的副本:

...

  <ItemGroup>
<Content Update="test.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>

现在 ReadAllText 将找到该文件 - e。 G。如果它在根目录中,这将起作用:

System.IO.File.ReadAllText("test.json");

我发布了working sample with .NET 6 on GitHub .

关于在 Linux AZ 函数中部署时找不到 Azure 函数错误文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70832019/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com