<rss version="2.0"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <atom:link href="https://piotrbach.com/topics/azure/rss/" rel="self" type="application/rss+xml" />

        <title>Piotr Bach RSS Feed - Azure</title>

        <link>https://piotrbach.com/topics/azure</link>

        <description>Explore practical Azure guides covering App Service, deployment, storage, security, observability and cloud architecture for modern .NET and Umbraco platforms.</description>

        <pubDate>Wed, 15 Jul 2026 19:43:33 GMT</pubDate>

        <lastBuildDate>Mon, 21 Sep 2026 10:10:18 GMT</lastBuildDate>

        <language>en</language>

        <generator>BachPlatform / Umbraco CMS</generator>

            <item>
                <title>Umbraco Upgrade Readiness: What Makes an Upgrade Expensive</title>

                <link>https://piotrbach.com/blog/umbraco-upgrade-readiness/</link>

                <description>Upgrade cost is often determined years before the upgrade begins. The useful question is not only whether an Umbraco solution can reach the next version, but how much uncertainty the surrounding platform carries into that change.</description>

                <pubDate>Sun, 20 Sep 2026 10:33:47 GMT</pubDate>

                <dc:creator>Piotr Bach</dc:creator>

                <guid isPermaLink="true">https://piotrbach.com/blog/umbraco-upgrade-readiness/</guid>
            </item>
            <item>
                <title>Fix Azure DevOps AADSTS7000222: Client Secret Expired</title>

                <link>https://piotrbach.com/blog/fix-azure-devops-aadsts7000222-client-secret-expired/</link>

                <description>Your Azure deployment suddenly fails with AADSTS7000222. Here is how to restore it quickly and remove the expiring secret permanently with workload identity federation.</description>

                <pubDate>Sat, 11 Oct 2025 06:00:00 GMT</pubDate>

                <dc:creator>Piotr Bach</dc:creator>

                <guid isPermaLink="true">https://piotrbach.com/blog/fix-azure-devops-aadsts7000222-client-secret-expired/</guid>
            </item>
            <item>
                <title>Enable Brotli and Gzip Compression in ASP.NET Core</title>

                <link>https://piotrbach.com/blog/enable-brotli-gzip-compression-aspnet-core/</link>

                <description>Configure ASP.NET Core Response Compression Middleware for Brotli and Gzip, understand the HTTPS and compression-level trade-offs, and verify the result in the browser.</description>

                <pubDate>Wed, 01 Jan 2025 06:00:00 GMT</pubDate>

                <dc:creator>Piotr Bach</dc:creator>

                <guid isPermaLink="true">https://piotrbach.com/blog/enable-brotli-gzip-compression-aspnet-core/</guid>
            </item>
            <item>
                <title>Making Umbraco 13 LogViewer Resilient to Corrupted JSON Logs</title>

                <link>https://piotrbach.com/blog/umbraco-13-logviewer-corrupted-json-logs/</link>

                <description>A single unreadable JSON log file made the Umbraco 13 LogViewer practically unusable. The first fix addressed Newtonsoft.Json MaxDepth. A later failure required something stronger: isolate the damaged file, preserve it for investigation, and keep the rest of the LogViewer operational.</description>

                <pubDate>Sun, 24 Nov 2024 06:00:00 GMT</pubDate>

                <dc:creator>Piotr Bach</dc:creator>

                <guid isPermaLink="true">https://piotrbach.com/blog/umbraco-13-logviewer-corrupted-json-logs/</guid>
            </item>
            <item>
                <title>Fix &#x201C;Syntactically Invalid EHLO Argument&#x201D; SmtpException in C#</title>

                <link>https://piotrbach.com/blog/fix-syntactically-invalid-ehlo-argument-smtpexception-in-csharp/</link>

                <description>If System.Net.Mail.SmtpClient sends an invalid hostname in the SMTP EHLO command, some mail servers reject the connection before the message is sent. Here is how to identify the cause and choose the right fix.</description>

                <pubDate>Tue, 02 Apr 2024 06:00:00 GMT</pubDate>

                <dc:creator>Piotr Bach</dc:creator>

                <guid isPermaLink="true">https://piotrbach.com/blog/fix-syntactically-invalid-ehlo-argument-smtpexception-in-csharp/</guid>
            </item>
            <item>
                <title>Configure UmbracoApplicationUrl in Azure Web Apps</title>

                <link>https://piotrbach.com/blog/configure-umbracoapplicationurl-in-azure-web-apps/</link>

                <description>Set UmbracoApplicationUrl per environment without hardcoding deployment-specific URLs in appsettings.json. Azure App Service environment variables map directly into ASP.NET Core configuration.</description>

                <pubDate>Sun, 24 Mar 2024 06:00:00 GMT</pubDate>

                <dc:creator>Piotr Bach</dc:creator>

                <guid isPermaLink="true">https://piotrbach.com/blog/configure-umbracoapplicationurl-in-azure-web-apps/</guid>
            </item>
            <item>
                <title>Enable Dynamic GZIP Compression for IIS Azure Web App</title>

                <link>https://piotrbach.com/blog/enable-dynamic-gzip-compression-for-iis-azure-web-app/</link>

                <description>Enable static and dynamic GZIP compression for a Windows Azure App Service by updating IIS configuration through Kudu, then troubleshoot the CPU thresholds that can disable dynamic compression.</description>

                <pubDate>Thu, 21 Jul 2022 04:00:00 GMT</pubDate>

                <dc:creator>Piotr Bach</dc:creator>

                <guid isPermaLink="true">https://piotrbach.com/blog/enable-dynamic-gzip-compression-for-iis-azure-web-app/</guid>
            </item>
            <item>
                <title>Deploy ASP.NET Website with Azure DevOps and FtpUpload@2</title>

                <link>https://piotrbach.com/blog/deploy-aspnet-website-with-azure-devops-and-ftpupload-2/</link>

                <description>A complete Azure Pipelines example for building, testing and deploying a classic ASP.NET Framework website when FTP or FTPS is the deployment interface available on the target server.</description>

                <pubDate>Fri, 22 Oct 2021 06:00:00 GMT</pubDate>

                <dc:creator>Piotr Bach</dc:creator>

                <guid isPermaLink="true">https://piotrbach.com/blog/deploy-aspnet-website-with-azure-devops-and-ftpupload-2/</guid>
            </item>
            <item>
                <title>How to Find Azure App Service FTP/FTPS Credentials</title>

                <link>https://piotrbach.com/blog/how-to-find-azure-app-service-ftpftps-credentials/</link>

                <description>Need to connect to an Azure App Service over FTPS? The credentials are available in Deployment Center, but new App Services can have Basic Authentication disabled by default. This guide shows where to find the endpoint, username, and password, how to enable SCM Basic Auth Publishing Credentials and FTP Basic Auth Publishing Credentials when required, and how to verify that FTPS access is actually available.</description>

                <pubDate>Sun, 14 Feb 2021 06:00:00 GMT</pubDate>

                <dc:creator>Piotr Bach</dc:creator>

                <guid isPermaLink="true">https://piotrbach.com/blog/how-to-find-azure-app-service-ftpftps-credentials/</guid>
            </item>
            <item>
                <title>Integrating Umbraco 8 with Azure Private Blob Storage</title>

                <link>https://piotrbach.com/blog/integrating-umbraco-with-azure-private-blob-storage/</link>

                <description>Configure Umbraco 8 to work with private Azure Blob Storage using ImageProcessor, a custom IImageService, and the ImageProcessor security configuration.</description>

                <pubDate>Sat, 30 Jan 2021 11:00:00 GMT</pubDate>

                <dc:creator>Piotr Bach</dc:creator>

                <guid isPermaLink="true">https://piotrbach.com/blog/integrating-umbraco-with-azure-private-blob-storage/</guid>
            </item>
    </channel>
</rss>
