Critical: .NET install domains and URLs are changingΒ #9671
Description
Some .NET binaries and installers are hosted on Azure Content Delivery Network (CDN) domains that end in .azureedge.net
. These domains are hosted by edg.io, which will soon cease operations due to bankruptcy. We are required to migrate to a new CDN and will be using new domains going forward. It is possible that .azureedge.net
domains will have downtime or become permanently unavailable.
Current status:
azureedge.net
CDN domains are functionalbuilds.dotnet.microsoft.com
andci.dot.net
are functional- Domains are using a combination of AFD and Akamai CDN
- No domains are using Edgio CDN
- Install scripts have been updated
- dotnet-setup GitHub Action has been updated
- Install scripts and GitHub Actions will be updated again in January
- Upcoming changes: dotnet CDN tracking issueΒ #9674
Recommended action:
- Read Critical: .NET Install links are changing for an overview.
- Switch
azureedge.net
references to new domains- Update your local copies of the install script
- Update pinned references to actions/setup-dotnet
- Validate that firewall rules are resilient to using Akamai and/or Azure Front Door CDNs.
Last update: 2025.01.06
Next Update: 2025.01.10
You may need to adapt to these changes.
We expect azureedge.net
domains to cease being functional in the first half of 2025. Moving your usage to the new CDN is the best path to avoiding service disruption.
Test links for new CDN:
- https://builds.dotnet.microsoft.com/dotnet/Sdk/LTS/latest.version
- https://builds.dotnet.microsoft.com/dotnet/release-metadata/releases-index.json
Test links for old CDN:
- https://dotnetcli.azureedge.net/dotnet/Sdk/LTS/latest.version
- https://dotnetcli.azureedge.net/dotnet/release-metadata/releases-index.json
Our plan is a work-in-progress and is expected to evolve. We recommend that affected users make changes by the end of January.
Affected resources
Domains affected:
URLs affected:
- https://dot.net/v1/dotnet-install.sh
- https://dot.net/v1/dotnet-install.ps1
- https://aka.ms/dotnet/ (various)
Not affected:
There are many users of these resources, for example:
- https://github.com/search?q=dotnetcli.azureedge.net&type=code
- https://github.com/search?q=dot.net%2Fv1%2Fdotnet-install&type=code
On December 23rd, we switched the two azureedge.net
domains above to use Azure Traffic Manager. After that change, those domains continued to send 100% of traffic to our edg.io CDNs. We expect to drop edgio traffic to zero on December 27th by sending all traffic to a different CDN. These changes could break users with conservative firewall rules.
Users should not consider azureedge.net
to be a long-term usable domain. Please move to the new domains as soon as possible. It is likely that these domains will be retired in the first half on 2025. No other party will be able to use them. We are not able to control the timing of these events.
Install script
The .NET install script is used to install .NET from our CDN. We are changing CDNs (documented in a following section), which requires us to change the install script to use the new CDN.
Updated scripts:
- https://dot.net/v1/dotnet-install.sh
- https://dot.net/v1/dotnet-install.ps1
- https://github.com/dotnet/install-scripts/tree/main/src
The updated scripts prefer the new CDNs, while enabling fallback to the legacy azureedge.net
domains. The legacy domains will be removed at a later point.
- Users who have local copies of these scripts will need to update their copies.
- Users who rely on the remote copy (at the URLs above) do not need to do anything other than validate no observed change in behavior (due to new domains and CDNs being used).
Tracking PRs:
Notes (for the install script):
- The
-NoCdn
or--no-cdn
argument can be used to bypass using the CDN, which may help some users. - The
-AzureFeed
or--azure-feed
argument can be used to specify an alternate storage account or CDN.
Plan for domains
There are multiple domains, used for different purposes.
Official builds
Official builds and JSON files are hosted via a CDN, available for use by the install script and other installers.
Note: Official builds are tested and signed by Microsoft. A microsoft.com
domain was chosen to reflect that.
You can change from old to new domains by changing the domain section of the URL. The other parts of the URL do not need to change.
Example URLs:
- New: https://builds.dotnet.microsoft.com/dotnet/Runtime/8.0.11/dotnet-runtime-8.0.11-linux-x64.tar.gz
- Old: https://dotnetcli.azureedge.net/dotnet/Runtime/8.0.11/dotnet-runtime-8.0.11-linux-x64.tar.gz
- New: https://builds.dotnet.microsoft.com/dotnet/release-metadata/releases-index.json
- Old: https://dotnetcli.azureedge.net/dotnet/release-metadata/releases-index.json
A set of short links are available for official builds.
Link pattern:https://aka.ms/dotnet/[x.y]/[package]
.
Example URLs:
- https://aka.ms/dotnet/9.0/dotnet-sdk-win-x64.zip
- https://aka.ms/dotnet/8.0/aspnetcore-runtime-linux-x64.tar.gz
These links produce301
HTTP results that forward to our CDN.
- Currently forward to: https://dotnetcli.azureedge.net.
- Will be changed to forward to: https://build.dotnet.microsoft.com.
We expect these links to be changed in early January.
Tracking PR:
CI builds
Continuous integration (CI) builds are hosted via a CDN, available via the install script and GitHub README files.
Note: CI builds include a mix of tested and untested builds, signed and unsigned builds.
Example URLs:
- New: https://ci.dot.net/public/Runtime/9.0.1-servicing.24610.11/dotnet-runtime-9.0.1-win-x64.exe
- Old: https://dotnetbuilds.azureedge.net/public/Runtime/9.0.1-servicing.24610.11/dotnet-runtime-9.0.1-win-x64.exe
A set of short links are available for CI builds.
Link pattern:https://aka.ms/dotnet/[x.y]/daily/[package]
.
Example URLs:
- https://aka.ms/dotnet/9.0/daily/dotnet-runtime-win-x64.exe
- https://aka.ms/dotnet/9.0/daily/aspnetcore-runtime-linux-arm.tar.gz
- https://aka.ms/dotnet/10.0.1xx/daily/dotnet-sdk-osx-arm64.pkg
These links produce301
HTTP results that forward to our CDN.
- Currently forward to: https://dotnetbuilds.azureedge.net.
- Will be changed to forward to: https://ci.dot.net.
We expect these links to be changed in early January.
Tracking PR:
CI build pages use the CI short links.
Example build pages:
Azure DevOps and GitHub Actions
- Major versions tags for actions/setup-dotnet have been updated. References to pinned versions will require updating to the most recent version.
- We expect that GitHub Enterprise Server will be addressed in January.
- Azure DevOps
UseDotnetTask
will be updated in January - We do not yet have a date for updating Azure DevOps Server.
Other changes
The following resources are also affected.
- dotnet/dotnet-docker Dockerfiles
- dotnet/core JSON files
- dotnet/templating template data
- iis.net is affected
Activity