小编Nik*_*dic的帖子

Azure Functions 静态 SqlConnection - 正确的扩展方式?

我使用带有队列触发器的 Azure Functions 来处理部分工作负载。特定函数查询数据库,这会产生扩展问题,因为大量并发函数实例 ping 数据库会导致 Azrue DB 连接的最大允许数量不断受到影响。

本文https://learn.microsoft.com/en-us/azure/azure-functions/manage-connections将 HttpClient 列为应设为静态的资源之一。是否也应该使用静态 SqlConnection 将数据库访问设为静态来解决此问题,或者通过保留常量连接对象会导致其他问题吗?

static sqlconnection azure azure-sql-database azure-functions

5
推荐指数
1
解决办法
5497
查看次数

Azure Blob下载(GET)导致PUT请求失败

我正在从Azure blob下载文件以将其显示给我的用户.这些文件只是以doc/docx/pdf格式恢复.这曾经在几天前工作,我所做的只是更新Azure SDK,所以这可能就是原因.从客户端调用方法,最终调用这样的方法:

CloudBlobContainer container = GetContainer(containerName);
CloudBlockBlob blockBlob = container.GetBlockBlobReference(fileName);
blockBlob.Properties.ContentType = contentType;

using (var fileStream = new MemoryStream())
{
    await blockBlob.DownloadToStreamAsync(fileStream);
    return fileStream;
}
Run Code Online (Sandbox Code Playgroud)

GetContainer方法定义如下:

try
{
    var storageAccount = StorageAccount;
    var blobClient = storageAccount.CreateCloudBlobClient();
    var container = blobClient.GetContainerReference(containerName);

    if (container.CreateIfNotExists())
    {
        container.SetPermissions(new BlobContainerPermissions
        {
             PublicAccess = BlobContainerPublicAccessType.Blob
        });
    }
    return container;
}
catch (Exception e)
{
    Logger.Error("GetBlobContainer fail", e);
}
Run Code Online (Sandbox Code Playgroud)

截至昨天,我一直在Azure Application Insights中看到失败的依赖性调用.不是错误,只是失败的依赖.每次下载文件时,都会执行GET请求,但同时由于某种原因也会执行PUT请求,并且失败.在下图中,您可以看到此错误的数据洞察日志.每个看起来都一样.调用该方法,下载文件,然后调用该PUT请求......

在此输入图像描述

为什么要创建此PUT请求,以及如何解决此问题,这让我发疯.有趣的是,就我所见,一切正常,所有这些都发生在我对blob的上传和下载调用中.

c# dependencies azure azure-storage-blobs

2
推荐指数
1
解决办法
650
查看次数