我正在尝试使用.NET核心创建一个非常简单的API,并正在探索kestrel。我正在遵循此MS教程上的指示:https://learn.microsoft.com/en-us/aspnet/core/core/fundamentals/servers/kestrel?view= aspnetcore-2
但是,当我尝试调用configurekestrel方法时,Visual Studio告诉我:" IWEBHostBuilder不包含'configurekestrel()''的定义,并且没有可访问的扩展方法用于configurekestrel接受'iwebhostbuilder'的第一个参数,可以找到(您是否缺少使用指令或装配给参考?)
我找不到有关此信息的任何信息,而且我很确定我正在使用正确的库。任何帮助都将不胜感激 - 包括代码:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
namespace WebApplication2
{
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureKestrel((context, options) =>
{
// Error with ConfigureKestrel method above
});
}
}
我已经从头开始创建了一个示例应用程序,然后编译:
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
namespace WebApplication1
{
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureKestrel((a, b) => { });
}
}
您可以检查此示例是否适合您?
还请检查您有最新版本的.NET Core,也许已更改?该文档为2.2
找到VS2017 ASP.NET Core Web应用程序 ->运行2.1的API没有配置。但是,您可以将Kestrelserveroptions操作传递到Usekestel中,而不是将您的控制权带到您之后。它覆盖了来自CreateFaultBuilder的设置。
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>().UseKestrel(options => options.Listen(IPAddress.Loopback,60000));
顺便说一句,如果您从普通的.NETCORE CONSOLE应用程序开始,然后添加...
Microsoft.AspNetCore
Microsoft.AspNetCore.Mvc
这为您提供了一个运行Aspnetcore 2.2而不是2.1