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
⚠️ powershell_heavy
⚠️ windows_tools
⚠️ missing_linux_example
Summary:
The documentation demonstrates a Windows bias by prioritizing Windows-centric tools and workflows. PowerShell is given equal prominence to Azure CLI, but no Bash or Linux shell scripting examples are provided. The list of recommended FTP/S clients includes two Windows-focused tools (Visual Studio, WinSCP) and only one cross-platform option (Cyberduck), with no mention of Linux-native clients (e.g., lftp, FileZilla). There are no explicit Linux command-line or desktop environment instructions, and troubleshooting and connection examples reference Windows tooling and patterns.
Recommendations:
  • Add Linux/Bash shell scripting examples alongside PowerShell for all CLI operations.
  • Include Linux-native FTP/S clients (e.g., lftp, FileZilla, GNOME Files) in the list of recommended clients.
  • When listing tools or commands, alternate the order or provide parallel examples for both Windows and Linux users.
  • Add troubleshooting steps and screenshots relevant to Linux environments.
  • Clarify that Azure CLI commands work cross-platform and provide sample terminal output from Linux shells.
  • Avoid assuming the use of Windows-specific tools (such as Visual Studio) as the default workflow.
GitHub Create pull request

Scan History

Date Scan ID Status Bias Status
2025-09-16 00:00 #113 completed ❌ Biased
2025-08-16 00:00 #82 in_progress ❌ Biased
2025-08-15 00:01 #81 in_progress ❌ Biased
2025-07-13 21:37 #48 completed ✅ Clean
2025-07-13 21:25 #47 cancelled ✅ Clean
2025-07-13 20:48 #44 cancelled ❌ Biased
2025-07-09 13:09 #3 cancelled ✅ Clean
2025-07-08 04:23 #2 cancelled ❌ Biased

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..