C# Kestrel服务器已经启动
使用IIS Express启动C# Kestrel服务器已经启动,c#,asp.net-core,iis-express,.net-core-3.0,kestrel,C#,Asp.net Core,Iis Express,.net Core 3.0,Kestrel,使用IIS Express启动.net core 3.0.100应用程序时: 我得到了下一个错误 未处理的异常。System.InvalidOperationException:服务器已启动 使用命令行启动时也会出现相同的错误: dotnet运行-w 此启动代码创建hostBuilder并启动应用程序 private static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(a
.net core 3.0.100
应用程序时:
我得到了下一个错误
未处理的异常。System.InvalidOperationException:服务器已启动
使用命令行启动时也会出现相同的错误:
dotnet运行-w
此启动代码创建hostBuilder并启动应用程序
private static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.UseStartup<Startup>()
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.SetMinimumLevel(LogLevel.Trace);
})
.UseNLog();
});
public static void Main(string[] args) => CreateHostBuilder(args).Build().Run(); // errors throws here
结果是一样的
更新4
试过
dotnet.dll
仍然有相同的错误,但知道只生成了一个dotnet.exe
进程。此进程可在更新2后的5分钟内终止
我的假设是,在kestrel启动同步之前,kestrel服务器已经启动了,但我不知道何时以及如何启动
更新5
启动代码清单
public void ConfigureServices(IServiceCollection services)
{
services
.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "wwwroot";
});
services
.AddLocalizationOptions(Configuration)
.AddHttpContextAccessor()
.AddSingleton<IActionContextAccessor, ActionContextAccessor>()
.AddSecurityAuthentication(
this.Configuration,
options => options
.UseUserModel<User>()
.AddUserService<UserService>()
.AddSecurityJwtAuthentication())
.AddAuthorization()
.AddLogging(builder => builder
.AddConfiguration(Configuration)
.AddConsole()
.AddNLog())
.AddMvcCore()
.AddControllersAsServices()
.AddCustomJsonOptions(this.hostingEnvironment)
.AddCustomCors();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
// If, for some reason, you need a reference to the built container, you
// can use the convenience extension method GetAutofacRoot.
this.AutofacContainer = app.ApplicationServices.GetAutofacRoot();
app
.UseRequestLocalization(
RequestLocalizationConfigurator.GetRequestLocalizationOptions(app.ApplicationServices))
.UseHttpsRedirection()
.UseMiddleware<SpaRoutingMiddleware>()
.UseStaticFiles()
.UseMiddleware<ExceptionHandlingMiddleware>()
.UseRouting()
.UseCors(CorsPolicyName.AllowAny)
.UseAuthentication()
.UseAuthorization()
.UseEndpoints(endpoints =>
{
endpoints.MapControllers().RequireAuthorization();
});
app.UseSpaStaticFiles();
app.UseSpa(spa =>
{
spa.Options.SourcePath = "../../../../client";
});
}
public void配置服务(IServiceCollection服务)
{
服务
.AddSpaStaticFiles(配置=>
{
configuration.RootPath=“wwwroot”;
});
服务
.AddLocalizationOptions(配置)
.AddHttpContextAccessor()
.AddSingleton()
.AddSecurityAuthentication(
这个,配置,,
选项=>选项
.UseUserModel()
.AddUserService()
.AddSecurityJwtAuthentication())
.AddAuthorization()
.AddLogging(builder=>builder
.AddConfiguration(配置)
.AddConsole()
.AddNLog())
.AddMvcCore()
.addControllerAsservices()
.AddCustomJsonOptions(此.hostingEnvironment)
.AddCustomCors();
}
public void配置(IApplicationBuilder应用程序、IWebHostEnvironment环境)
{
if(env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
//如果出于某种原因,需要对生成的容器进行引用,则
//可以使用方便的扩展方法GetAutofacRoot。
this.AutofacContainer=app.ApplicationServices.GetAutofacRoot();
应用程序
.UserRequestLocalization(
RequestLocalizationConfigurator.GetRequestLocalizationOptions(app.ApplicationServices))
.UseHttpsRedirection()
.UseMiddleware()
.UseStaticFiles()
.UseMiddleware()
.UseRouting()
.UseCors(CorsPolicyName.AllowAny)
.UseAuthentication()
.UseAuthorization()
.UseEndpoints(端点=>
{
endpoints.MapController().RequireAuthorization();
});
app.UseSpaStaticFiles();
app.UseSpa(spa=>
{
spa.Options.SourcePath=“../../../../../client”;
});
}
此问题是否发生在新的Asp.Net核心MVC模板上?检查任务经理,看看你是否已经开始了。@TaoZhou我已经更新了问题,这是你的意思吗?只是射击。您是否尝试过向webbuilder添加:UseKestrel()和UseIISIntegration()方法?这些可能只是真正的IIS所需要的,不是Express,但我真的不知道。
public void ConfigureServices(IServiceCollection services)
{
services
.AddSpaStaticFiles(configuration =>
{
configuration.RootPath = "wwwroot";
});
services
.AddLocalizationOptions(Configuration)
.AddHttpContextAccessor()
.AddSingleton<IActionContextAccessor, ActionContextAccessor>()
.AddSecurityAuthentication(
this.Configuration,
options => options
.UseUserModel<User>()
.AddUserService<UserService>()
.AddSecurityJwtAuthentication())
.AddAuthorization()
.AddLogging(builder => builder
.AddConfiguration(Configuration)
.AddConsole()
.AddNLog())
.AddMvcCore()
.AddControllersAsServices()
.AddCustomJsonOptions(this.hostingEnvironment)
.AddCustomCors();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
// If, for some reason, you need a reference to the built container, you
// can use the convenience extension method GetAutofacRoot.
this.AutofacContainer = app.ApplicationServices.GetAutofacRoot();
app
.UseRequestLocalization(
RequestLocalizationConfigurator.GetRequestLocalizationOptions(app.ApplicationServices))
.UseHttpsRedirection()
.UseMiddleware<SpaRoutingMiddleware>()
.UseStaticFiles()
.UseMiddleware<ExceptionHandlingMiddleware>()
.UseRouting()
.UseCors(CorsPolicyName.AllowAny)
.UseAuthentication()
.UseAuthorization()
.UseEndpoints(endpoints =>
{
endpoints.MapControllers().RequireAuthorization();
});
app.UseSpaStaticFiles();
app.UseSpa(spa =>
{
spa.Options.SourcePath = "../../../../client";
});
}