当前位置: 首页 > 知识库问答 >
问题:

Azure函数没有给出有效的Base-64字符串错误

东和怡
2023-03-14

我有一个带有CosmosDB输出绑定的http触发器和一个最简单的函数,如下所示。

 public static class AddRequest
{
    [FunctionName("AddRequest")]
    public static async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
        ILogger log, [CosmosDB(
            databaseName: "haveThatDB",
            collectionName: "Requests",
            ConnectionStringSetting = "MongoDBEndPoint",CreateIfNotExists =true)] IAsyncCollector<Request> requestOutput
       )

    {
       string jsonContent = await req.ReadAsStringAsync();
        dynamic data = JsonConvert.DeserializeObject(jsonContent);

        await requestOutput.AddAsync(data);

        return req != null
           ? (ActionResult)new OkObjectResult($"Hello, ras")
           : new BadRequestObjectResult("Please pass a name on the query string or in the request body");
    }
}

当我执行时,我得到一个错误

异常绑定参数'Request estOutput'。System.Private.CoreLib:输入不是有效的Base-64字符串,因为它包含一个非base 64字符、两个以上的填充字符或填充字符中的非法字符

我正在使用azure函数的V2。

我已经观察到删除输出绑定是有效的。所以看起来这个输出绑定出了问题。

local.settings内容如下

{ “IsEncrypted”: false, “Values”: { “AzureWebJobsStorage”: “UseDevelopmentStorage=true”, “FUNCTIONS_WORKER_RUNTIME”: “dotnet”, “MongoDBEndPoint”: “AccountEndpoint=https://abc.documents.azure.com:10255;AccountKey=xxxxxxxxxxxxxxyyyyzzzzz“, ”MongoDBName“: ”haveThatDB“ } }

任何帮助都将不胜感激。

共有1个答案

曾典
2023-03-14

Azure Cosmos DB 绑定仅支持与 SQL API 一起使用。对于所有其他 Azure Cosmos DB API,应使用 API 的静态客户端(包括 MongoDB API、Cassandra API、Gremlin API 和 Table API)从函数访问数据库。支持的接口

Azure函数2.x的Azure Cosmos DB绑定

 类似资料:
  • 我有一个REST服务,它读取一个文件,并在将其转换为字节数组后将其发送到另一个控制台应用程序,然后将其转换为Base64字符串。这部分有效,但是当应用程序接收到相同的流时,它会被操纵,不再是有效的Base64字符串。一些垃圾字符被引入到流中。 将流转换回Byte时收到的异常为 输入不是有效的Base-64字符串,因为它包含非基64字符、两个以上的填充字符或填充字符中的非空白字符 服务时: 在申请时

  • 在使用Cordova Plugin FileReader转换pdf文件并将其发送到.Net服务器后,服务器在将base64字符串转换为字节数组时抛出错误“输入不是有效的Base-64字符串,因为它包含非base64字符、两个以上的填充字符或填充字符中的非法字符。”。 Java脚本代码: C#代码: Base64字符串开头: data:application/pdf;base64,JVBERi0xL

  • 我正在尝试加密和解密存储在SQL中的密码。解码时,我收到一个错误。输入不是有效的Base-64字符串,因为它包含一个非Base-64字符、两个以上的填充字符或填充字符中的非法字符。位于System.Convert.FromBase64_Decode。 解密代码: 加密代码: 列的数据类型为

  • 当我们调用时,它会抛出一个异常,说明。我能做什么?

  • 我有一个未知长度(但不是空)的字符串str和给定的最大长度len,这必须适合。我想做的,就是把绳子剪断。 我知道我可以使用 但这不会派上用场,如果我试图像这样编写堆叠代码 我知道我可以编写自己的函数,但我更喜欢现有的解决方案。Java 中是否存在现有的左()函数?

  • 我有一个代码如下所示: 将pdf文件输出到物理文件夹的工作正常。我想要的是将pdf导出为base 64字符串。有什么方法可以做到这一点吗? 谢谢