Can I Run IronXL with .NET on Azure?

Yes. IronXL can be used on Azure to Generate QR & Barcodes in C# & VB .NET Applications, and also Read Barcodes & QR Codes from Scanned Images.

IronXL has been thoroughly tested on multiple Azure platforms including MVC websites, Azure Functions, and many more.


Step 1

1. Install IronXL to Get Started

First Install with NuGet: https://www.nuget.org/packages/IronXL.Excel

Install-Package IronXL.Excel

How to Tutorial

2. Performance and Azure Tiers

We recommend that Azure B1 hosting levels are very suitable for our end users' Library needs. If they are creating a high throughput system, this may need to be upgraded.

3. Framework Choice

We have found that IronXL for Core and for Framework both work on Azure. .NET Standard applications seem to have a small performance advantage on speed and stability, but use more memory in process.

Azure free tier hosting is slow

Azure free and shared tiers, and the consumption plan, are not suitable for QR Processing. We recommend Azure B1 hosting/Premium plan, which is what we use ourselves.

4. Docker on Azure

One way to gain the ability to control performance on Azure is to use IronXL applications and Functions from within Docker Containers.

We have a comprehensive IronXL Azure Docker tutorial for Linux and Windows instances and it is recommended reading.

5. Official Azure Function Support

IronXL Support Azure Function (Azure Functions V3). It's not been tested with V4 Till now but it is in our Queue.

Working Azure Function Code Example

Tested on Azure Functions v3.3.1.0+. Here is Sample Code

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