❔ Exception thrown in Rider but not in VS2022

I have a web API with a run/debug configuration derived from launchSettings.json. This file defines an environment variable with
"REMOTE_CONFIGURATION_LOCATION": ""

When I debug the code under Rider one of my two suspicions is that the following code causes a UriFormatException to be thrown and the api terminates after logging the exception to console.
    var builder = CoreFxWebApplication
        .CreateBuilder()
        .ConfigureDefaults()
        .ConfigureTelemetry()
        .ConfigureApplicationLogging()
        .ConfigureApplicationServices()
        .ConfigureCors()
    ;

The exception is not thrown at all when I debug the code in VS2022. In the above code,CoreFxWebApplication is declared in a private NuGet package. This suspicion is based on the exception being thrown in the CreateBuilder call above, which looks like this:
public static CoreFxWebApplicationBuilder CreateBuilder(bool useRemoteConfiguration = true) => CoreFxWebApplication.CreateBuilder(Array.Empty<string>(), CoreFxWebApplication.LoadOptions(useRemoteConfiguration));
public static CoreFxWebApplicationBuilder CreateBuilder(
  string[] args,
  CoreFxServiceOptions options)
{
  return new CoreFxWebApplicationBuilder(args, options);
}
...
private static CoreFxServiceOptions LoadOptions(bool useRemoteConfiguration)
{
  WebApplicationBuilder builder = WebApplication.CreateBuilder();
  builder.Configuration.AddConfiguration(builder.Environment.EnvironmentName, LexisHostingEnvironment.GetAssetGroup(), useRemoteConfiguration, LexisHostingEnvironment.GetRemoteConfigurationUri()?.AbsoluteUri, (Action<IConfigurationBuilder>) null);
  builder.Services.Configure<CoreFxServiceOptions>((Action<CoreFxServiceOptions>) (o => o.UseRemoteConfiguration = useRemoteConfiguration)).Configure<CoreFxServiceOptions>((IConfiguration) builder.Configuration.GetSection("ApplicationOptions"));
  return builder.Build().Services.GetRequiredService<IOptions<CoreFxServiceOptions>>().Value;
}

The CoreFxWebApplicationBuilder constructor the above code involves the following call:
public static Uri GetRemoteConfigurationUri()
{
  Uri configurationUri = (Uri) null;
  string environmentVariable = Environment.GetEnvironmentVariable(ServiceDefaults.RemoteConfigurationUri);
  if (environmentVariable != null)
    configurationUri = new Uri(environmentVariable);
  return configurationUri;
}

My other suspicion is hinges on the environment variables defined in the launch profiles for Rider and VS for the API. The Rider profile defines the following variables:
ASPNETCORE_URLS=https://localhost:12345
ASSET_AREA_NAME=maximusvote-local
ASPNETCORE_ENVIRONMENT=Development
ASSET_GROUP=xxxxx
APPLICATION_ID=123456
REMOTE_CONFIGURATION_LOCATION=

where the Visual Studio profile defines the same set of variables but without ASPNETCORE_URLS. I can't find any usages of this variable in any of the api source code but a lot of functionality is hidden in NuGet packages. I only have this suspicion because with the URL variable only defined in Rider, the code may somehow be trying to create a System.Uri resulting in the exception being thrown.
Was this page helpful?