У меня есть проект ASP.NET Core API. Ранее я смог успешно запустить его в Linux (Ubuntu):
sudo dotnet Project.dll
Я также смог запустить его под Windows
Теперь что-то странное изменилось, наверное, и когда я запускаю команду:
sudo dotnet Project.dll
Я получаю исключение:
Unhandled Exception: System.ArgumentException: An item with the same key has already been added. Key: environment
at System.ThrowHelper.ThrowAddingDuplicateWithKeyArgumentException(Object key)
at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior)
at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
at Microsoft.Extensions.Configuration.Memory.MemoryConfigurationProvider..ctor(MemoryConfigurationSource source)
at Microsoft.Extensions.Configuration.Memory.MemoryConfigurationSource.Build(IConfigurationBuilder builder)
at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
at Microsoft.AspNetCore.Hosting.WebHostBuilder.BuildCommonServices(AggregateException& hostingStartupErrors)
at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build()
А затем он указывает на линию
var host = new WebHostBuilder()
в моем Program.cs
файле, вот оно:
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("host.json", optional: true)
.AddJsonFile("appsettings.json", optional: true)
.Build();
var host = new WebHostBuilder()
.UseKestrel()
.UseConfiguration(config)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
Я уже откатил Startup.cs до того момента, когда он успешно работал, но все еще получаю это исключение. В то же время у меня нет проблем с запуском этого кода под Windows. Пожалуйста, сообщите.