# Deploying the MVC HTML5 Editor to Azure App Services

> The TX Text Control HTML5-based document editor requires a backend service hosted on a dedicated Azure VM, while the ASP.NET MVC front-end application deploys to Azure App Services. TCP port 4275 must be opened in the VM network security group and WebSockets enabled in App Service.

- **Author:** Bjoern Meyer
- **Published:** 2018-04-06
- **Modified:** 2026-07-17
- **Description:** The TX Text Control HTML5-based document editor requires a backend service hosted on a dedicated Azure VM, while the ASP.NET MVC front-end application deploys to Azure App Services. TCP port 4275 must be opened in the VM network security group and WebSockets enabled in App Service.
- **3 min read** (576 words)
- **Tags:**
  - ASP.NET
  - Azure
  - HTML5
  - MVC
- **Web URL:** https://www.textcontrol.com/blog/2018/04/06/deploying-the-mvc-html5-editor-to-azure-app-services/
- **LLMs URL:** https://www.textcontrol.com/blog/2018/04/06/deploying-the-mvc-html5-editor-to-azure-app-services/llms.txt
- **LLMs-Full URL:** https://www.textcontrol.com/blog/2018/04/06/deploying-the-mvc-html5-editor-to-azure-app-services/llms-full.txt

---

While the backend service of the HTML5-based editor, that synchronizes the document, requires a full Azure VM, the front-end ASP.NET MVC application can be deployed to Azure App Services. This concept allows a central server (cluster) to host the backend which is used by several applications deployed to various App Service instances.

![Microsoft Azure](https://s1-www.textcontrol.com/assets/dist/blog/2018/04/06/a/assets/diagram.webp "Microsoft Azure")

The following best practice explains how to deploy applications using this architecture.

### Azure VM for the TX Text Control Backend Service

In order to build such a setup, a full Azure VM is required.

1. Create a new VM by choosing *Compute* from the Azure Marketplace and select *Windows Server 2016 Datacenter* as the template. Choose a size depending on your computing requirements. The number of CPUs is not really an important factor for this VM, but memory and a fast SSD helps.
2. When this VM has been created, connect to the VM and deploy the TX Text Control service as described in the documentation:
    
    [Redistribution and Deployment](https://docs.textcontrol.com/textcontrol/asp-dotnet/article.aspnet.requirements.htm) (scroll down to second part *Deploying the TX Text Control Web Server*).
3. The ASP.NET MVC applications deployed to App Services will communicate with this VM directly using TCP on port 4275 (for version X16 - increments by 1 for each major release) and therefore, this port needs to be opened in the *Network security group* by adding an *Inbound security rule*. In the Azure portal, open the *Inbound security rules* for the *Network security group* of the created Azure VM.
    
    ![Microsoft Azure](https://s1-www.textcontrol.com/assets/dist/blog/2018/04/06/a/assets/security_group.webp "Microsoft Azure")
    
    Click *Add* to create a new rule:
    
    ![Microsoft Azure](https://s1-www.textcontrol.com/assets/dist/blog/2018/04/06/a/assets/rule.webp "Microsoft Azure")

### The ASP.NET MVC Application

In Visual Studio, create your ASP.NET MVC application using the HTML5-based editor according to the [documentation](https://www.textcontrol.com/blog/2020/01/01/creating-an-aspnet-mvc-application-with-razor/llms-full.txt).

1. In the view, where TX Text Control is used, set the ServiceAddress property to the IP of your created Azure VM.
    
    ```
    @using TXTextControl.Web.MVC
    @using TXTextControl.Web
    
    @Html.TXTextControl().TextControl(settings =>
    {
        settings.Dock = DockStyle.Window;
        settings.ServiceAddress = IPAddress.Parse("192.168.0.1"); // change IP here
    }).Render()
    ```
2. Select *Publish* from the *Build* main menu. In the opened dialog, select *Microsoft Azure App Service*, check *Create New* and confirm with *Publish*.
    
    ![Microsoft Azure](https://s1-www.textcontrol.com/assets/dist/blog/2018/04/06/a/assets/publish.webp "Microsoft Azure")
3. In the opened dialog, login with your Microsoft account, add an *App Name*, select your Azure *Subscription*, your *Resource Group* and *App Service Plan* (or create new ones) and confirm with *Create*.
    
    ![Microsoft Azure](https://s1-www.textcontrol.com/assets/dist/blog/2018/04/06/a/assets/create.webp "Microsoft Azure")
4. In the *Solution Explorer*, open the *Server Explorer* and expand the *Azure* node. Find your published App Service and choose *Open in Management Portal* from the right-click context menu.
    
    ![Microsoft Azure](https://s1-www.textcontrol.com/assets/dist/blog/2018/04/06/a/assets/solution.webp "Microsoft Azure")
5. In the Azure Portal, open the *Application Settings*, enable *Web sockets* and *Save* these changes.
    
    ![Microsoft Azure](https://s1-www.textcontrol.com/assets/dist/blog/2018/04/06/a/assets/settings.webp "Microsoft Azure")

Now, the ASP.NET MVC application is deployed to Azure App Services and ready to be accessed. The MVC application is synchronizing the document with the backend server hosted in the Azure VM.

---

## About Bjoern Meyer

As CEO, Bjoern is the visionary behind our strategic direction and business development, bridging the gap between our customers and engineering teams. His deep passion for coding and web technologies drives the creation of innovative products. If you're at a tech conference, be sure to stop by our booth - you'll most likely meet Bjoern in person. With an advanced graduate degree (Dipl. Inf.) in Computer Science, specializing in AI, from the University of Bremen, Bjoern brings significant expertise to his role. In his spare time, Bjoern enjoys running, paragliding, mountain biking, and playing the piano.

- [LinkedIn](https://www.linkedin.com/in/bjoernmeyer/)
- [X](https://x.com/txbjoern)
- [GitHub](https://github.com/bjoerntx)

---

## Related Posts

- [Detect Toggle Button Changes Using a MutationObserver](https://www.textcontrol.com/blog/2021/11/11/detect-toggle-button-changes-using-a-mutationobserver/llms.txt)
- [Implementing Conditional Table Cell Colors with MailMerge](https://www.textcontrol.com/blog/2020/10/08/implementing-conditional-table-cell-colors-with-mailmerge/llms.txt)
- [Using an Azure Load Balancer with Web.TextControl](https://www.textcontrol.com/blog/2016/03/22/using-an-azure-load-balancer-with-webtextcontrol/llms.txt)
- [MVC: Loading Files from the Backstage Menu](https://www.textcontrol.com/blog/2016/01/06/mvc-loading-files-from-the-backstage-menu/llms.txt)
- [MVC: Replace the File Menu with a Backstage View Menu](https://www.textcontrol.com/blog/2015/12/30/mvc-replace-the-file-menu-with-a-backstage-view-menu/llms.txt)
- [MVC: Replace the Ribbon Table Menu with a Quick Insert Table Drop-down](https://www.textcontrol.com/blog/2015/12/23/mvc-replace-the-ribbon-table-menu-with-a-quick-insert-table-drop-down/llms.txt)
- [MVC: Arrange a Docked Web.TextControl with a Custom Bar at the Top](https://www.textcontrol.com/blog/2015/12/18/mvc-arrange-a-docked-webtextcontrol-with-a-custom-bar-at-the-top/llms.txt)
- [MVC: Autosave and Restore Documents to and from the Local Browser Storage](https://www.textcontrol.com/blog/2015/12/14/mvc-autosave-and-restore-documents-to-and-from-the-local-browser-storage/llms.txt)
- [MVC: Loading and Saving Documents Through Controller HttpPost Methods](https://www.textcontrol.com/blog/2015/12/08/mvc-loading-and-saving-documents-through-controller-httppost-methods/llms.txt)
- [HTML5: Saving Documents in an MVC Controller Method](https://www.textcontrol.com/blog/2015/10/01/html5-saving-documents-in-an-mvc-controller-method/llms.txt)
- [Web.TextControl: JQueryUI Alert Boxes and Javascript Events](https://www.textcontrol.com/blog/2015/04/20/webtextcontrol-jqueryui-alert-boxes-and-javascript-events/llms.txt)
- [Deploying the TX Text Control Document Editor from the Private NuGet Feed to Azure App Services (Linux and Windows)](https://www.textcontrol.com/blog/2026/03/25/deploying-the-tx-text-control-document-editor-from-the-private-nuget-feed-to-azure-app-services-linux-and-windows/llms.txt)
- [Deploying the TX Text Control Document Editor in an ASP.NET Core Web App to Azure App Services](https://www.textcontrol.com/blog/2025/03/26/deploying-the-tx-text-control-document-editor-in-an-asp-net-core-web-app-to-azure-app-services/llms.txt)
- [Why an Unlimited Runtime License (OEM) for TX Text Control is Perfect for Cloud Deployments](https://www.textcontrol.com/blog/2025/01/08/why-an-unlimited-runtime-license-oem-for-tx-text-control-is-perfect-for-cloud-deployments/llms.txt)
- [Sign PDF Documents with PFX Certificates from Azure Key Vault in .NET C#](https://www.textcontrol.com/blog/2025/01/07/sign-pdf-documents-with-pfx-certificates-from-azure-key-vault-in-net-c-sharp/llms.txt)
- [Celebrating a Successful 2024: Key Achievements and Exciting Outlook for 2025](https://www.textcontrol.com/blog/2024/12/17/celebrating-a-successful-2024-key-achievements-and-exciting-outlook-for-2025/llms.txt)
- [TX Text Control for Linux Preview: Document Processing in ASP.NET Core on Azure App Services](https://www.textcontrol.com/blog/2024/12/17/tx-text-control-for-linux-preview-document-processing-in-asp-net-core-on-azure-app-services/llms.txt)
- [Loading Documents from Azure Blob Storage into the TX Text Control Document Editor using pure JavaScript](https://www.textcontrol.com/blog/2024/04/08/loading-documents-from-azure-blob-storage-into-tx-text-control-document-editor-using-pure-javascript/llms.txt)
- [Getting Started: ServerTextControl and MailMerge with ASP.NET MVC (.NET Framework)](https://www.textcontrol.com/blog/2022/09/01/getting-started-servertextcontrol-and-mailmerge-with-aspnet-net-framework/llms.txt)
- [Getting Started: Document Viewer with ASP.NET MVC (.NET Framework)](https://www.textcontrol.com/blog/2022/09/01/getting-started-document-viewer-with-aspnet-framework/llms.txt)
- [Getting Started: Document Editor with ASP.NET MVC (.NET Framework)](https://www.textcontrol.com/blog/2022/09/01/getting-started-document-editor-with-aspnet-framework/llms.txt)
- [Using the MVC DocumentViewer in ASP.NET Web Forms](https://www.textcontrol.com/blog/2021/08/12/using-the-mvc-documentviewer-in-aspnet-web-forms/llms.txt)
- [Creation of Custom Electronic Signature Boxes](https://www.textcontrol.com/blog/2021/06/15/creation-of-custom-electronic-signature-boxes/llms.txt)
- [DocumentViewer Preview: Completing Form Fields](https://www.textcontrol.com/blog/2021/04/15/document-viewer-preview-completing-form-fields/llms.txt)
- [Securing the WebSocketHandler Endpoint in ASP.NET](https://www.textcontrol.com/blog/2020/05/28/securing-the-websockethandler-endpoint-in-aspnet/llms.txt)
