Служба не зарегистрирована для приложения .NET Core Kestrel

У меня есть консольное приложение, которое я пытаюсь запустить Kestrel. Файлы кода — это все шаблонные файлы из пустого приложения ASP.Core:

public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();
}

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.Run(async (context) =>
        {
            await context.Response.WriteAsync("Hello World!");
        });
    }
}

Однако, когда я запускаю его, я получаю следующее исключение:

Unhandled Exception: System.InvalidOperationException: No service for type 'Microsoft.AspNetCore.Hosting.IStartup' has been registered.

Мой проектный файл:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore" Version="2.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Hosting" Version="2.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Server.Kestrel" version="2.0" />
  </ItemGroup>
</Project>

person BanksySan    schedule 17.10.2017    source источник
comment
Как вы запускали приложение? Я протестировал ваш код в режиме отладки VS 2017, а также с использованием dotnet app.dll и работал в обоих случаях!   -  person Jawad Al Shaikh    schedule 18.10.2017
comment
@JawadAlShaikh Создан и работает с прежним интерфейсом командной строки. Консольное приложение было создано с его помощью dotnet new console  -  person BanksySan    schedule 18.10.2017
comment
Я предполагаю, что проблема с разрешением зависимостей, я буду тестировать метод new console, а пока вы можете попробовать VS 2017, если это возможно?   -  person Jawad Al Shaikh    schedule 18.10.2017
comment
@JawadAlShaikh Спасибо. К сожалению, у меня пока только Райдер.   -  person BanksySan    schedule 18.10.2017
comment
Я сделал dotnet new console, затем обновил program.cs и csproj вашим кодом, затем dotnet restore, затем dotnet run, и это сработало.   -  person Jawad Al Shaikh    schedule 18.10.2017
comment
@JawadAlShaikh спасибо, у вас есть те же рекомендации, что и у меня?   -  person BanksySan    schedule 18.10.2017
comment
У меня есть это: использование Microsoft.AspNetCore; с помощью Microsoft.AspNetCore.Builder; с помощью Microsoft.AspNetCore.Hosting; используя Microsoft.AspNetCore.Http; с помощью Microsoft.Extensions.DependencyInjection;   -  person Jawad Al Shaikh    schedule 18.10.2017
comment
Да для csproj я делал именно так как ты.   -  person Jawad Al Shaikh    schedule 18.10.2017
comment
@JawadAlShaikh Я имел в виду в вашем файле проекта.   -  person BanksySan    schedule 18.10.2017
comment
@JawadAlShaikh Тогда я в замешательстве. Спасибо, что попробовали. Я полагаю, вы используете ядро ​​2.0?   -  person BanksySan    schedule 18.10.2017
comment
Да, ядро ​​2.0, ОС: Windows 10. Какую ОС вы используете?   -  person Jawad Al Shaikh    schedule 18.10.2017
comment
@JawadAlShaikh Точно так же. Попробую снова начать с нуля. Спасибо еще раз.   -  person BanksySan    schedule 18.10.2017


Ответы (1)


Как обсуждалось в комментариях, я не смог воспроизвести сообщенную проблему:

Я нашел единственную ссылку на упомянутое вами исключение System.InvalidOperationException: No service for type 'Microsoft.AspNetCore.Hosting.IStartup' has been registered., цитируемое ниже из Reference:

это система конфигурации ASP.NET Core, которая выдает это исключение о том, что класса IStartup нет.

Я не очень хорошо разбираюсь в том, что вы здесь делаете, но кажется, что вы делаете свою настройку в неправильном порядке.

person Jawad Al Shaikh    schedule 18.10.2017