Я думаю, проблема связана с тем, что HttpRequest и BlobServiceClient не поддерживают платформу .Net 4.8.
Может ли кто-нибудь помочь мне решить эту проблему?
Код: Выделить всё
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Logging;
using OfficeOpenXml; // Install the NuGet package "EPPlus"
public static class ExtractEmailsFromExcel
{
private static readonly string _storageConnectionString = "connectionstring";
private static readonly string _blobContainerName = "";
private static readonly string _excelFileName = "";
[FunctionName("ExtractEmails")]
public static async Task Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
try
{
// Download Excel file from Azure Blob Storage
var emailAddresses = await DownloadAndExtractEmails(_storageConnectionString, _blobContainerName, _excelFileName);
// Return list of email addresses
return req.CreateResponse(HttpStatusCode.OK, emailAddresses);
}
catch (Exception ex)
{
log.LogError($"Error: {ex.Message}");
return req.CreateResponse(HttpStatusCode.InternalServerError, ex.Message);
}
}
private static async Task DownloadAndExtractEmails(string storageConnectionString, string containerName, string fileName)
{
var emails = new List();
using (var client = new BlobServiceClient(storageConnectionString))
{
var containerClient = client.GetBlobContainerClient(containerName);
var blobClient = containerClient.GetBlobClient(fileName);
if (await blobClient.ExistsAsync())
{
var downloadStream = await blobClient.DownloadStreamingAsync();
using (var memoryStream = new MemoryStream())
{
await downloadStream.CopyToAsync(memoryStream);
memoryStream.Position = 0;
using (var excelPackage = new ExcelPackage(memoryStream))
{
var worksheet = excelPackage.Workbook.Worksheets.First(); // Assuming first worksheet
var emailColumn = 1; // Assuming email addresses are in the first column (index 1)
for (int row = 2; row
Подробнее здесь: [url]https://stackoverflow.com/questions/78730755/azure-function-net-code-issue-for-httprequest-and-blobserviceclient-assembly-or[/url]