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_tools
⚠️ windows_first
⚠️ missing_linux_example
Summary:
The documentation demonstrates a Windows bias by referencing Windows-specific concepts and tools (such as certificate store locations like 'CurrentUser' and 'LocalMachine', store names like 'My', 'Root', etc., and the use of CMD/batch files for startup tasks) without mentioning Linux equivalents or alternatives. There are no examples or guidance for Linux-based deployments, and terminology assumes a Windows environment (e.g., .NET Framework, environment variables like %ROLEROOT%).
Recommendations:
  • Add explicit documentation or notes for Linux-based worker roles, including how certificates, environment variables, and startup tasks are handled on Linux.
  • Provide Linux-specific examples for startup tasks (e.g., using shell scripts instead of CMD files) and clarify file encoding requirements for Linux.
  • Document how certificate management works on Linux (e.g., using PEM files or Linux certificate stores), and provide equivalent instructions.
  • Clarify whether environment variables like %ROLEROOT% are available or mapped differently on Linux, and provide examples using $ROLEROOT or similar syntax.
  • Include guidance for cross-platform compatibility, highlighting any differences or limitations when deploying worker roles on Linux VMs.
GitHub Create pull request

Scan History

Date Scan ID Status Bias Status
2025-08-17 00:01 #83 in_progress ✅ Clean
2025-07-13 21:37 #48 completed ✅ Clean
2025-07-09 13:09 #3 cancelled ✅ Clean
2025-07-08 04:23 #2 cancelled ❌ Biased

Flagged Code Snippets

<ServiceDefinition …> <WorkerRole name="<worker-role-name>" vmsize="<worker-role-size>" enableNativeCodeExecution="[true|false]"> <Certificates> <Certificate name="<certificate-name>" storeLocation="[CurrentUser|LocalMachine]" storeName="[My|Root|CA|Trust|Disallow|TrustedPeople|TrustedPublisher|AuthRoot|AddressBook|<custom-store>" /> </Certificates> <ConfigurationSettings> <Setting name="<setting-name>" /> </ConfigurationSettings> <Endpoints> <InputEndpoint name="<input-endpoint-name>" protocol="[http|https|tcp|udp]" localPort="<local-port-number>" port="<port-number>" certificate="<certificate-name>" loadBalancerProbe="<load-balancer-probe-name>" /> <InternalEndpoint name="<internal-endpoint-name" protocol="[http|tcp|udp|any]" port="<port-number>"> <FixedPort port="<port-number>"/> <FixedPortRange min="<minimum-port-number>" max="<maximum-port-number>"/> </InternalEndpoint> <InstanceInputEndpoint name="<instance-input-endpoint-name>" localPort="<port-number>" protocol="[udp|tcp]"> <AllocatePublicPortFrom> <FixedPortRange min="<minimum-port-number>" max="<maximum-port-number>"/> </AllocatePublicPortFrom> </InstanceInputEndpoint> </Endpoints> <Imports> <Import moduleName="[RemoteAccess|RemoteForwarder|Diagnostics]"/> </Imports> <LocalResources> <LocalStorage name="<local-store-name>" cleanOnRoleRecycle="[true|false]" sizeInMB="<size-in-megabytes>" /> </LocalResources> <LocalStorage name="<local-store-name>" cleanOnRoleRecycle="[true|false]" sizeInMB="<size-in-megabytes>" /> <Runtime executionContext="[limited|elevated]"> <Environment> <Variable name="<variable-name>" value="<variable-value>"> <RoleInstanceValue xpath="<xpath-to-role-environment-settings>"/> </Variable> </Environment> <EntryPoint> <NetFxEntryPoint assemblyName="<name-of-assembly-containing-entrypoint>" targetFrameworkVersion="<.net-framework-version>"/> <ProgramEntryPoint commandLine="<application>" setReadyOnProcessStart="[true|false]"/> </EntryPoint> </Runtime> <Startup priority="<for-internal-use-only>"> <Task commandLine="" executionContext="[limited|elevated]" taskType="[simple|foreground|background]"> <Environment> <Variable name="<variable-name>" value="<variable-value>"> <RoleInstanceValue xpath="<xpath-to-role-environment-settings>"/> </Variable> </Environment> </Task> </Startup> <Contents> <Content destination="<destination-folder-name>" > <SourceDirectory path="<local-source-directory>" /> </Content> </Contents> </WorkerRole> </ServiceDefinition>