This page contains Windows bias

About This Page

This page is part of the Azure documentation. It contains code examples and configuration instructions for working with Azure services.

Bias Analysis

Bias Types:
⚠️ windows_first
⚠️ windows_tools
⚠️ missing_linux_example
Summary:
The documentation exhibits a moderate Windows bias. While it covers Azure CLI (cross-platform) and PowerShell (Windows-centric), it prioritizes Windows tools and patterns in several areas. The FTP client examples list Visual Studio and WinSCP (both Windows-focused) before Cyberduck (cross-platform), and there are no explicit Linux command-line FTP client examples (such as lftp, ncftp, or the standard ftp command). Troubleshooting and connection examples reference WinSCP documentation, and there is no mention of Linux-native tools or workflows. No Linux shell (bash) or Mac-specific guidance is provided.
Recommendations:
  • Include explicit Linux and macOS command-line FTP/S client examples (e.g., lftp, ncftp, curl, or the standard ftp command) alongside PowerShell and Azure CLI.
  • List cross-platform or Linux-native FTP clients (e.g., FileZilla, lftp) before or alongside Windows-specific tools like Visual Studio and WinSCP.
  • Provide sample Linux shell commands for connecting and uploading files via FTP/S.
  • Reference documentation or screenshots for Linux and macOS FTP clients in troubleshooting sections.
  • Ensure that all steps and screenshots are platform-neutral or provide platform-specific tabs (Windows, Linux, macOS) where appropriate.
GitHub Create pull request

Scan History

Date Scan ID Status Bias Status
2025-07-12 23:44 #41 in_progress ❌ Biased
2025-07-12 00:58 #8 cancelled ✅ Clean
2025-07-10 05:06 #7 processing ✅ Clean
2025-07-09 23:22 #6 cancelled ✅ Clean

Flagged Code Snippets

>[!NOTE] >If you see two endpoints returned, copy the read-write URL, not the one containing `dr` that has `ReadOnly` in the name. # [Azure PowerShell](#tab/powershell) Run the following [Get-AzWebAppPublishingProfile](/powershell/module/az.websites/get-azwebapppublishingprofile) command, replacing the `<app-name>` and `<resource-group-name>` with your values. The following example extracts the FTP/S endpoint from the XML output.
----- ## Deploy files to Azure To deploy files to Azure with FTP/S: 1. From your FTP/S client such as [Visual Studio](https://www.visualstudio.com/vs/community/), [Cyberduck](https://cyberduck.io/), or [WinSCP](https://winscp.net/index.php), use your connection information to connect to your app. 1. Copy your files and their directory structure to the [/site/wwwroot](https://github.com/projectkudu/kudu/wiki/File-structure-on-azure) directory in Azure or the */site/wwwroot/App_Data/Jobs/* directory for WebJobs. 1. Browse to your app's URL to verify the app is running properly. > [!NOTE] > Unlike [local Git deployment](deploy-local-git.md) and [ZIP deployment](deploy-zip.md), FTP/S deployment doesn't support build automation such as: > - Restoring dependencies like NuGet, NPM, PIP, and Composer automation. > - Compiling .NET binaries. > - Generating a *web.config* file. > > You must generate these necessary files manually on your local machine and then deploy them with your app. For a Node.js *web.config* example, see [Using a custom web.config for Node apps](https://github.com/projectkudu/kudu/wiki/Using-a-custom-web.config-for-Node-apps). ## Enforce FTPS FTPS is a more secure form of FTP that uses Transport Layer Security (TLS) and Secure Sockets Layer (SSL). For enhanced security, you should enforce FTPS over TLS/SSL. You can also disable both FTP and FTPS if you don't use FTP deployment. To disable unencrypted FTP: # [Azure portal](#tab/portal) 1. On the Azure portal page for your app, select **Configuration** under **Settings** in the left navigation menu. 1. On the **General settings** tab of the **Configuration** page, under **Platform settings**, select **FTPS only** for **FTP state**. Or to disable both FTP and FTPS entirely, select **Disabled**. [ ![Screenshot that shows setting FTP state to FTPS only.](./media/app-service-deploy-ftp/disable-ftp.png) ](./media/app-service-deploy-ftp/disable-ftp.png#lightbox) 1. If you select **FTPS only**, be sure TLS 1.2 or higher is enforced for **Minimum Inbound TLS Settings**. TLS 1.0 and 1.1 aren't supported for **FTPS only**. 1. Select **Save** at the top of the page. # [Azure CLI](#tab/cli) Run the following [az webapp config set](/cli/azure/webapp/deployment#az-webapp-deployment-list-publishing-profiles) command, replacing the `<app-name>` and `<resource-group-name>` with your values. Use the `--ftps-state` argument set to `FtpsOnly` to enforce FTPS, or `Disabled` to disable both FTP and FTPS.
# [Azure PowerShell](#tab/powershell) Run the following [Set-AzWebApp](/powershell/module/az.websites/set-azwebapp) command, replacing the `<app-name>` and `<resource-group-name>` with your values. Use the `-FtpsState` parameter set to `FtpsOnly` to enforce FTPS, or `Disabled` to disable both FTP and FTPS..