Kann ich IronXL mit .NET auf Azure ausführen?

This article was translated from English: Does it need improvement?
Translated
View the article in English

Ja. IronXL kann auf Azure verwendet werden, um QR & Barcodes in C# & VB .NET Anwendungen zu generieren, und auch Barcodes & QR Codes aus gescannten Bildern zu lesen.

IronXL wurde gründlich auf mehreren Azure-Plattformen getestet, darunter MVC-Websites, Azure Functions und viele mehr.


Schritt 1

1. Installieren Sie IronXL, um loszulegen

Erste Installation mit NuGet:https://www.nuget.org/packages/IronXL.Excel

Install-Package IronXL.Excel

Anleitung zum Tutorial

2. Leistung und Azure-Tiers

Wir empfehlen, dass Azure B1-Hosting-Levels sehr gut für die Bibliotheksanforderungen unserer Endbenutzer geeignet sind. Wenn sie ein System mit hohem Durchsatz schaffen, muss dieses möglicherweise aufgerüstet werden.

3. Rahmenwahl

Wir haben festgestellt, dass IronXL for Core und for Framework beide auf Azure funktionieren. .NET-Standard-Anwendungen scheinen einen kleinen Leistungsvorteil in Bezug auf Geschwindigkeit und Stabilität zu haben, verbrauchen dabei aber mehr Speicher.

Azure Free Tier Hosting ist langsam

Azure Free und Shared Tiers sowie der Consumption Plan sind für QR Processing nicht geeignet. Wir empfehlen Azure B1 Hosting/Premium Plan, den wir selbst nutzen.

4. Docker auf Azure

Eine Möglichkeit, die Leistung auf Azure zu kontrollieren, ist die Verwendung von IronXL-Anwendungen und -Funktionen innerhalb von Docker-Containern.

Wir haben ein umfassendesIronXL Azure Docker-Anleitung für Linux- und Windows-Instanzen und ist eine empfehlenswerte Lektüre.

5. Offizielle Azure-Funktionsunterstützung

IronXL Unterstützung Azure Funktion(Azure-Funktionen V3). Es wurde bis jetzt noch nicht mit V4 getestet, aber es ist in unserer Warteschlange.

Beispiel für funktionierenden Azure-Funktionscode

Getestet mit Azure Functions v3.3.1.0+. Hier ein Beispielcode

    [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
VB   C#