我能在 Azure 上運行 IronXL 與 .NET 嗎?
是的。IronXL 可以在 Azure 上使用,以在 C# 和 VB .NET 應用程式中生成 QR 和條碼,並從掃描圖像中讀取條碼和 QR 碼。
IronXL 已經在包括 MVC 網站、Azure Functions 等多個 Azure 平台上進行了全面測試。
第一步
1. 安裝 IronXL 以開始
首先使用 NuGet 安裝: https://www.nuget.org/packages/IronXL.Excel
Install-Package IronXL.Excel
如何操作教程
2. 性能和 Azure 等級
我們建議 Azure B1 的託管等級非常適合我們終端使用者的庫需求。如果他們正在創建高吞吐量系統,則可能需要進行升級。
3. 框架選擇
我們發現IronXL for Core和for Framework在Azure上都能運行。.NET Standard應用程序在速度和穩定性方面似乎有些微的性能優勢,但在過程中會使用更多記憶體。
Azure 免費層託管速度慢
Azure 免費和共享層以及消費計劃不適合 QR 處理。我們建議使用我們自己使用的 Azure B1 託管/高級計劃。
4. Docker on Azure
在 Azure 上控制性能的一種方法是從 Docker 容器中使用 IronXL 應用程式和功能。
我們有一個全面的 IronXL Azure Docker 教程 適用於 Linux 和 Windows 實例,並建議閱讀。
5. 官方 Azure Function 支援
IronXL 支援 Azure Function (Azure Functions V3). 到目前為止還沒有用 V4 測試過,但它在我們的排程中。
工作中的 Azure Function 代碼範例
已在 Azure Functions v3.3.1.0+ 上測試。以下是範例代碼
[FunctionName("barcode")]
public static HttpResponseMessage Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
IronXL.License.LicenseKey = "Key";
var MyBarCode = BarcodeWriter.CreateBarcode("IronXL Test", BarcodeEncoding.QRCode);
var result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new ByteArrayContent(MyBarCode.ToJpegBinaryData());
result.Content.Headers.ContentDisposition =
new ContentDispositionHeaderValue("attachment") { FileName = $"{DateTime.Now.ToString("yyyyMMddmm")}.jpg" };
result.Content.Headers.ContentType =
new MediaTypeHeaderValue("image/jpeg");
return result;
}
[FunctionName("barcode")]
public static HttpResponseMessage Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
log.LogInformation("C# HTTP trigger function processed a request.");
IronXL.License.LicenseKey = "Key";
var MyBarCode = BarcodeWriter.CreateBarcode("IronXL Test", BarcodeEncoding.QRCode);
var result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new ByteArrayContent(MyBarCode.ToJpegBinaryData());
result.Content.Headers.ContentDisposition =
new ContentDispositionHeaderValue("attachment") { FileName = $"{DateTime.Now.ToString("yyyyMMddmm")}.jpg" };
result.Content.Headers.ContentType =
new MediaTypeHeaderValue("image/jpeg");
return result;
}
<FunctionName("barcode")>
Public Shared Function Run(<HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route := Nothing)> ByVal req As HttpRequest, ByVal log As ILogger) As HttpResponseMessage
log.LogInformation("C# HTTP trigger function processed a request.")
IronXL.License.LicenseKey = "Key"
Dim MyBarCode = BarcodeWriter.CreateBarcode("IronXL Test", BarcodeEncoding.QRCode)
Dim result = New HttpResponseMessage(HttpStatusCode.OK)
result.Content = New ByteArrayContent(MyBarCode.ToJpegBinaryData())
result.Content.Headers.ContentDisposition = New ContentDispositionHeaderValue("attachment") With {.FileName = $"{DateTime.Now.ToString("yyyyMMddmm")}.jpg"}
result.Content.Headers.ContentType = New MediaTypeHeaderValue("image/jpeg")
Return result
End Function