-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix aka.ms URL in host's missing framework error #110513
base: main
Are you sure you want to change the base?
Conversation
Tagging subscribers to this area: @vitek-karas, @agocke, @VSadov |
We should check that this parameter is not used for collecting usage statistics in the backend. |
#define TARGET_OS "linux" | ||
#else | ||
// others are community supported platforms | ||
#define TARGET_OS "community" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is faults everything that is not win/osx/linux into a single bucket. We will get worse usage statistics.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
AFAIK, the real telemetry is collected by the SDK. If the backend is collecting statistics when the user is navigating to URL from the missing framework error message, I can list the community platforms here as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@richlander and @mairaw would know how all the query parameters get used in the backend.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
there is website telemetry collected by the aka.ms links too. We can probably fix the back-end service to resolve correctly if I know the missing cases and where they should go.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but I don't use specific values for telemetry just the source so you can make changes to the parameters if needed. but if we're missing some redirects, I'd love if the customer can get straight to the right download. Is this what drives the aka to show up in the first place?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if I know the missing cases and where they should go
We can list a few major ones, but the definition of non-portable RID is that anyone can put anything they want in there.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are portable system names independent of PortableBuild. In this context, the missing ones are desktop OS names: FreeBSD, NetBSD, illumos and Solaris.
Currently, the page redirects to cid=getdotnetcore&arch=..
without rid=
or os=
parts which makes sense because there is no Microsoft build for those. That's why I picked up community
. If it helps the telemetry, I can replace "community" with base system names.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the only value I use for telemetry is the cid=getdotnetcore. The rest doesn't matter from an analytics perspective. It matters to the redirection service. We can add new cases if needed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should follow-up on that.
I found the website code that is wrong. I'm pretty sure I wrote it. It can definitely be changed. I could do a couple things:
Sound good? I think the best long-term thing to do would be to add another apphost parameter that is the non-portable RID. |
I'm worried about getting back on this treadmill, after we just got off. |
That's why I suggested a long-term solution. |
linux-bionic and linux-musl, as well as linuxfoo, all redirect to linux. The standing logic seems to be Also, the logic of resolving non-portable versioned RID in C++ is not 100% in sync. From the samples above: |
When running app targeting a missing framework, text after
To install missing framework, download:
currently looks like:https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=9.0.0&arch=arm64&rid=fedora.41-arm64&os=fedora.41
https://dotnet.microsoft.com/en-us/download/dotnet/9.0/runtime?cid=getdotnetcore&arch=arm64
becauserid=fedora...
is unknown on akams side.https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=9.0.0&arch=arm64&rid=linux-musl-arm64&os=alpine.3.20
https://dotnet.microsoft.com/en-us/download/dotnet/9.0/runtime?cid=getdotnetcore&os=linux&arch=arm64
becauserid=linux-musl..
starts withlinux
.https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=9.0.0&arch=arm64&rid=alpine.3.21-arm64&os=alpine
https://dotnet.microsoft.com/en-us/download/dotnet/9.0/runtime?cid=getdotnetcore&arch=arm64
same as fedora non-portable (rid=alpine..
doesn't match anything on akams side)https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=9.0.0&arch=arm64&rid=osx-arm64&os=osx.15
https://dotnet.microsoft.com/en-us/download/dotnet/9.0/runtime?cid=getdotnetcore&os=macos&arch=arm64
becauserid=osx..
starts with osx and maps to macos in akams system.This PR fixes these disparities by always using non-portable RID in
rid=
and removesos=
parameter because it is simply ignored.