How To Run IronWord with .NET on Azure

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

IronWord ist eine leistungsstarke .NET-Bibliothek zum programmgesteuerten Erstellen, Bearbeiten und Lesen von Word-Dokumenten. Es funktioniert nahtlos auf verschiedenen Azure-Diensten, einschließlich Azure App Services, Azure Functions und Azure Container Instances.

IronWord installieren

Beginnen Sie mit der Installation des IronWord NuGet-Pakets aus dem offiziellen NuGet-Repository:

Install-Package IronWord

Hosting-Überlegungen für Azure

Wahl der richtigen Azure-Service-Ebene

IronWord funktioniert am besten auf Azure-Serviceplänen, die konsistente Rechenleistung bieten Verfügbarkeit. Für die meisten kleinen bis mittleren Anwendungsfälle ist der Basis (B1) App Service Plan ausreichend. Wenn Ihre Anwendung ein hohes Volumen an Word-Dokumenten verarbeitet oder komplexe Formatierungsaufgaben durchführt, sollten Sie ein Upgrade auf die Standard- (S1) oder höhere Stufen in Betracht ziehen, um Leistungsengpässe zu vermeiden.

Unterstützte .NET-Laufzeiten und Kompatibilität

IronWord funktioniert problemlos mit den folgenden Frameworks, die häufig in Azure-gehosteten Lösungen verwendet werden:

  • .NET 6+ (LTS empfohlen)
  • .NET Core 3.1
  • .NET Standard 2.1

Dies gibt Ihnen die Flexibilität, IronWord über verschiedene Azure-Dienste wie App Services, Azure Functions und Docker-Container zu implementieren, ohne sich um Kompatibilitätsprobleme kümmern zu müssen.

Bereitstellung in Docker auf Azure

Containerisierte Bereitstellung mit IronWord

Wenn Sie maximale Kontrolle über Ihre Laufzeitumgebung wünschen, sollten Sie IronWord in einem Docker-Container auf Azure Container Instances (ACI) oder Azure Kubernetes Service (AKS) bereitstellen. Dies erlaubt Ihnen:

  • Vorlagen oder statische Ressourcen vorzuladen
  • Einstellungen für die Dokumentenverarbeitung zu konfigurieren
  • Die Leistung auf Betriebssystemebene fein abzustimmen

Um loszulegen, verwenden Sie ein Basisimage wie mcr.microsoft.com/dotnet/aspnet:6.0 oder 7.0 und fügen Sie IronWord über NuGet oder manuelle DLL-Inklusion hinzu.

Serverless mit Azure Functions

Verwendung von IronWord in Azure Functions

IronWord ist vollständig kompatibel mit Azure Functions v4, die auf .NET 6 oder höher ausgeführt werden. Dies ermöglicht eine leichte, ereignisgesteuerte Dokumentengenerierung—perfekt für Szenarien wie:

  • On-Demand-Berichterstellung über HTTP
  • Erstellen von Word-Dokumenten aus Formulardaten
  • Umwandeln von strukturierten Daten in das .docx-Format

Azure-Funktionsbeispiel: Generieren eines Word-Dokuments auf Anfrage

Nachfolgend ein realitätsnahes Beispiel für eine Azure-Funktion, die ein Word-Dokument erstellt und als Antwort auf eine HTTP-Anfrage zurückgibt:

using System.Net;
using System.Net.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Extensions.Logging;
using System.Net.Http.Headers;
using IronWord;
using IronWord.Models;
using System.IO;
using System.Threading.Tasks;

public static class WordFunction
{
    [FunctionName("GenerateWordDoc")]
    public static HttpResponseMessage Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        log.LogInformation("Processing request to generate Word document...");

        // Set your IronWord license key
        IronWord.License.LicenseKey = "YOUR-LICENSE-KEY";

        // Create and populate Word document
        var doc = new WordDocument();
        Paragraph para1 = new Paragraph(new TextContent("This Word document was generated by IronWord in an Azure Function."));
        Paragraph para2 = new Paragraph(new TextContent($"Timestamp: {System.DateTime.UtcNow}"));
        doc.AddParagraph(para1);
        doc.AddParagraph(para2);

        // Save to temporary file
        string tempPath = Path.GetTempFileName().Replace(".tmp", ".docx");
        doc.SaveAs(tempPath);

        // Read the file bytes
        byte[] fileBytes = File.ReadAllBytes(tempPath);

        // Optionally delete the temp file
        File.Delete(tempPath);

        // Build the response with the document as an attachment
        var response = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new ByteArrayContent(fileBytes)
        };
        response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
        {
            FileName = $"IronWord_{System.DateTime.UtcNow:yyyyMMdd_HHmmss}.docx"
        };
        response.Content.Headers.ContentType = new MediaTypeHeaderValue(
            "application/vnd.openxmlformats-officedocument.wordprocessingml.document");

        return response;
    }
}
using System.Net;
using System.Net.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Extensions.Logging;
using System.Net.Http.Headers;
using IronWord;
using IronWord.Models;
using System.IO;
using System.Threading.Tasks;

public static class WordFunction
{
    [FunctionName("GenerateWordDoc")]
    public static HttpResponseMessage Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        log.LogInformation("Processing request to generate Word document...");

        // Set your IronWord license key
        IronWord.License.LicenseKey = "YOUR-LICENSE-KEY";

        // Create and populate Word document
        var doc = new WordDocument();
        Paragraph para1 = new Paragraph(new TextContent("This Word document was generated by IronWord in an Azure Function."));
        Paragraph para2 = new Paragraph(new TextContent($"Timestamp: {System.DateTime.UtcNow}"));
        doc.AddParagraph(para1);
        doc.AddParagraph(para2);

        // Save to temporary file
        string tempPath = Path.GetTempFileName().Replace(".tmp", ".docx");
        doc.SaveAs(tempPath);

        // Read the file bytes
        byte[] fileBytes = File.ReadAllBytes(tempPath);

        // Optionally delete the temp file
        File.Delete(tempPath);

        // Build the response with the document as an attachment
        var response = new HttpResponseMessage(HttpStatusCode.OK)
        {
            Content = new ByteArrayContent(fileBytes)
        };
        response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
        {
            FileName = $"IronWord_{System.DateTime.UtcNow:yyyyMMdd_HHmmss}.docx"
        };
        response.Content.Headers.ContentType = new MediaTypeHeaderValue(
            "application/vnd.openxmlformats-officedocument.wordprocessingml.document");

        return response;
    }
}
Imports System
Imports System.Net
Imports System.Net.Http
Imports Microsoft.AspNetCore.Http
Imports Microsoft.Azure.WebJobs
Imports Microsoft.Azure.WebJobs.Extensions.Http
Imports Microsoft.Extensions.Logging
Imports System.Net.Http.Headers
Imports IronWord
Imports IronWord.Models
Imports System.IO
Imports System.Threading.Tasks

Public Module WordFunction
	<FunctionName("GenerateWordDoc")>
	Public Function Run(<HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route := Nothing)> ByVal req As HttpRequest, ByVal log As ILogger) As HttpResponseMessage
		log.LogInformation("Processing request to generate Word document...")

		' Set your IronWord license key
		IronWord.License.LicenseKey = "YOUR-LICENSE-KEY"

		' Create and populate Word document
		Dim doc = New WordDocument()
		Dim para1 As New Paragraph(New TextContent("This Word document was generated by IronWord in an Azure Function."))
		Dim para2 As New Paragraph(New TextContent($"Timestamp: {DateTime.UtcNow}"))
		doc.AddParagraph(para1)
		doc.AddParagraph(para2)

		' Save to temporary file
		Dim tempPath As String = Path.GetTempFileName().Replace(".tmp", ".docx")
		doc.SaveAs(tempPath)

		' Read the file bytes
		Dim fileBytes() As Byte = File.ReadAllBytes(tempPath)

		' Optionally delete the temp file
		File.Delete(tempPath)

		' Build the response with the document as an attachment
		Dim response = New HttpResponseMessage(HttpStatusCode.OK) With {.Content = New ByteArrayContent(fileBytes)}
		response.Content.Headers.ContentDisposition = New ContentDispositionHeaderValue("attachment") With {.FileName = $"IronWord_{DateTime.UtcNow:yyyyMMdd_HHmmss}.docx"}
		response.Content.Headers.ContentType = New MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.wordprocessingml.document")

		Return response
	End Function
End Module
$vbLabelText   $csharpLabel

Code-Erklärung:

  1. Wir definieren eine Azure-Funktion mit dem Namen "GenerateWordDoc".
  2. Die Funktion wird durch eine HTTP GET- oder POST-Anfrage ausgelöst und protokolliert eine Nachricht, wenn sie mit der Verarbeitung beginnt.
  3. Wir spezifizieren den Lizenzschlüssel für IronWord, indem wir IronWord.License.LicenseKey setzen (ersetzen Sie "YOUR-LICENSE-KEY" durch Ihren tatsächlichen Schlüssel).
  4. Ein neues WordDocument wird mithilfe der IronWord-API erstellt.
  5. Dem Dokument werden zwei Absätze hinzugefügt—einer mit statischem Text und ein weiterer, der den aktuellen UTC-Zeitstempel anzeigt.
  6. Das Dokument wird auf dem Server in eine temporäre .docx-Datei gespeichert, indem doc.SaveAs(tempPath) verwendet wird.
  7. Die gespeicherte Datei wird mithilfe von File.ReadAllBytes in ein Byte-Array eingelesen, um sie zum Download bereitzustellen.
  8. Die temporäre Datei wird sofort nach dem Lesen gelöscht, um das System sauber zu halten.
  9. Eine HttpResponseMessage wird erstellt, die den Byte-Inhalt des Dokuments als herunterladbare Anlage enthält.
  10. Der Content-Disposition-Header legt den Dateinamen für den Download fest und verwendet dabei das aktuelle Datum und die Uhrzeit.
  11. Der Content-Type-Header wird auf "application/vnd.openxmlformats-officedocument.wordprocessingml.document" gesetzt, um ein Word-Dateiformat anzugeben.

Häufig gestellte Fragen

Was ist der erste Schritt, um IronWord auf Azure einzurichten?

Der erste Schritt, um IronWord auf Azure einzurichten, ist die Erstellung eines Azure-Kontos, falls Sie noch keins haben. Dann müssen Sie einen neuen Azure-App-Service einrichten, bei dem Sie Ihre .NET-Anwendung mit IronWord bereitstellen.

Wie deploye ich eine .NET-Anwendung mit IronWord auf Azure?

Um eine .NET-Anwendung mit IronWord auf Azure zu deployen, sollten Sie Ihre Anwendung und ihre Abhängigkeiten, einschließlich der IronWord-Bibliotheken, paketieren und sie in Ihren Azure-App-Service hochladen. Sie können Tools wie Visual Studio Publish oder Azure DevOps-Pipelines für diesen Prozess verwenden.

Brauche ich einen bestimmten Azure-Dienst, um IronWord auszuführen?

IronWord kann auf Standard-Azure-App-Services ausgeführt werden. Für optimale Leistung wird jedoch empfohlen, einen Plan zu verwenden, der ausreichende Ressourcen entsprechend den Anforderungen Ihrer Anwendung bietet.

Kann IronWord mit Azure Functions verwendet werden?

Ja, IronWord kann mit Azure Functions integriert werden, um Word-Dokumente als Teil einer serverlosen Architektur zu verarbeiten. Stellen Sie sicher, dass die Azure-Function-Umgebung die notwendigen Abhängigkeiten für IronWord hat.

Wie verbessert IronWord die Verarbeitung von Word-Dokumenten auf Azure?

IronWord verbessert die Verarbeitung von Word-Dokumenten auf Azure, indem es leistungsstarke .NET-Bibliotheken bereitstellt, die sich leicht in Azure-Dienste integrieren lassen und so die effiziente Erstellung, Manipulation und Konvertierung von Word-Dokumenten ermöglichen.

Gibt es eine Möglichkeit, IronWord-Aufgaben auf Azure zu automatisieren?

Ja, Sie können IronWord-Aufgaben auf Azure mithilfe von Azure Logic Apps oder Azure Functions automatisieren, um die Verarbeitung von Word-Dokumenten basierend auf bestimmten Ereignissen oder Zeitplänen auszulösen.

Was sind die Vorteile der Verwendung von IronWord auf Azure?

Die Verwendung von IronWord auf Azure ermöglicht eine skalierbare und zuverlässige Verarbeitung von Word-Dokumenten, indem die Cloud-Infrastruktur von Azure genutzt wird, um große Dokumentenmengen bei hoher Leistungsfähigkeit zu verarbeiten.

Kann ich IronWord mit Azure Blob Storage integrieren?

Ja, Sie können IronWord mit Azure Blob Storage integrieren, um Word-Dokumente zu speichern und abzurufen, was eine nahtlose Dokumentenverarbeitung und Speicherverwaltung innerhalb Ihrer Azure-Umgebung ermöglicht.

Wie stelle ich sicher, dass IronWord effizient auf Azure läuft?

Um sicherzustellen, dass IronWord effizient auf Azure läuft, wählen Sie den richtigen Dienstplan, der zu Ihrem Workload passt, optimieren Sie den Code Ihrer Anwendung, und implementieren Sie eine ordnungsgemäße Fehlerbehandlung und Protokollierung zur Fehlerbehebung.

Gibt es Voraussetzungen für die Verwendung von IronWord auf Azure?

Die Voraussetzungen für die Verwendung von IronWord auf Azure umfassen das Vorhandensein einer .NET-Umgebung, ein Azure-Konto mit den erforderlichen Berechtigungen und die Integration der IronWord-Bibliotheken in Ihr Projekt.

Kye Stuart
Technischer Autor

Kye Stuart verbindet Leidenschaft für das Programmieren und Schreibfähigkeiten bei Iron Software. Nach der Ausbildung am Yoobee College in Software-Bereitstellung transformieren sie nun komplexe technische Konzepte in klares Bildungspotenzial. Kye legt Wert auf lebenslanges Lernen und stellt sich neuen technischen Herausforderungen.

Außerhalb der Arbeit ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 25,807 | Version: 2025.11 gerade veröffentlicht