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
⚠️ missing_linux_example
⚠️ windows_tools
Summary:
The documentation exhibits a Windows bias by referencing Windows-specific tools (such as Fiddler), using Windows-centric debugging instructions (like 'Just My Code' and CLR exceptions in Visual Studio), and omitting Linux equivalents or instructions. There are no examples or troubleshooting steps tailored for Linux environments, containers, or cross-platform .NET development, and all code/configuration samples assume Windows/ASP.NET hosting patterns.
Recommendations:
  • Add Linux-specific troubleshooting steps, such as using tcpdump, Wireshark, or curl for network diagnostics.
  • Include instructions for viewing logs and debugging in Linux environments (e.g., using dotnet-trace, journalctl, or VS Code debugging).
  • Mention and provide examples for cross-platform tools (e.g., Wireshark instead of only Fiddler, or browser DevTools for all OSes).
  • Clarify that .NET Core and ASP.NET Core are cross-platform, and provide guidance for running and troubleshooting on Linux and in containers.
  • When referencing configuration files (like web.config), note differences for Linux deployments (e.g., appsettings.json, environment variables).
  • Balance the order of examples so that Linux or cross-platform approaches are presented alongside or before Windows-specific ones.
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

Flagged Code Snippets

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
<system.diagnostics> <sources> <source name="Microsoft.Azure.SignalR" switchName="SignalRSwitch"> <listeners> <add name="ASRS" /> </listeners> </source> </sources> <!-- Sets the trace verbosity level --> <switches> <add name="SignalRSwitch" value="Information" /> </switches> <!-- Specifies the trace writer for output --> <sharedListeners> <add name="ASRS" type="System.Diagnostics.TextWriterTraceListener" initializeData="asrs.log.txt" /> </sharedListeners> <trace autoflush="true" /> </system.diagnostics>
public class ThreadPoolStarvationDetector : EventListener { private const int EventIdForThreadPoolWorkerThreadAdjustmentAdjustment = 55; private const uint ReasonForStarvation = 6; private readonly ILogger<ThreadPoolStarvationDetector> _logger; public ThreadPoolStarvationDetector(ILogger<ThreadPoolStarvationDetector> logger) { _logger = logger; } protected override void OnEventSourceCreated(EventSource eventSource) { if (eventSource.Name == "Microsoft-Windows-DotNETRuntime") { EnableEvents(eventSource, EventLevel.Informational, EventKeywords.All); } } protected override void OnEventWritten(EventWrittenEventArgs eventData) { // See: https://learn.microsoft.com/dotnet/framework/performance/thread-pool-etw-events#threadpoolworkerthreadadjustmentadjustment if (eventData.EventId == EventIdForThreadPoolWorkerThreadAdjustmentAdjustment && eventData.Payload[2] as uint? == ReasonForStarvation) { _logger.LogWarning("Thread pool starvation detected!"); } } }