Search code examples
c#asp.net-coreasp.net-core-3.1ambiguous-call

Ambiguous call for UseHttps extension method


In my ASP.NET Core 3.1 project I have the following configuration in Program.cs:

using System.Net;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

[...]

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
            webBuilder.ConfigureKestrel(options =>
            {
                options.Listen(IPAddress.Loopback, 5000, listenOptions =>
                {
                    listenOptions.UseHttps("debug.pfx", "password");
                });
            });
        })
        .ConfigureAppConfiguration((hostBuilderContext, config) =>
        {
            config.AddJsonFile("config-debug.json");
        });

Referenced packages:

<PackageReference Include="AutoMapper" Version="9.0.0" />
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.3">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.9.10" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.1" />
<PackageReference Include="MoodleLti" Version="0.1.0" />
<PackageReference Include="MoodleLti.DependencyInjection" Version="0.1.0" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="3.1.1" />
<PackageReference Include="System.Linq.Async" Version="4.0.0" />

Compiling this yields the following error message:

Error CS0121: The call is ambiguous between the following methods or properties:
'Microsoft.AspNetCore.Hosting.ListenOptionsHttpsExtensions.UseHttps(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions, string, string)' and
'Microsoft.AspNetCore.Hosting.ListenOptionsHttpsExtensions.UseHttps(Microsoft.AspNetCore.Server.Kestrel.Core.ListenOptions, string, string)'

...which does not make much sense to me.

How can I fix this?


Solution

  • This problem was caused by a NuGet dependency, which had another dependency, which included the ASP.NET Core 2.0 packages. Those packages conflict with the 3.0 ones, leading to the call ambiguity error.

    I created an issue for the affected library, to add ASP.NET Core 3.0 support.