在ASP.NET Core2.0中,有一种通过实现IHostedService接口来添加后台任务的方法(参见)。通过遵循本教程,我能够让它工作的方式是在ASP.NET核心容器中注册它。我的目标是从队列中读取消息,并在后台处理作业;将消息发送到队列(通过控制器操作),然后在后台按时间间隔处理。
// Not registered in SimpleInjector
services.AddSingleton<IHostedService, MyTimedService>();
当我将此注册放在ASP.NET核心容器中时,它会在应用程序启动时自动启动该进程。但是,当我在SimpleI
我不能使用依赖注入,我的ASP.NET核心项目中有带有静态方法的静态助手类。确定应用程序是否在开发环境中运行的最简单方法是什么?
等同于:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment()) // -> this env is what I'm looking for
{
app.UseDeveloperExceptionPage();
app.UseMigrationsEndPoint(
最近,我迁移到ASP.NET Core3.0,并在创业时面对DI问题.他们在ASP.NET Core2.2上工作得很好。如果我在WebHostBuilder核心3.0中使用旧的ASP.NET,那么我就看不到问题了。不确定这些问题是否与Program.cs中的新Program.cs有关,或者DI在3.0中发生了变化。
Program.cs
public class Program
{
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(arg
我正在使用带有ASP.NET Core2.0的C#开发一个带有REST API的web应用程序。
我想要实现的是,当客户端向端点发送请求时,我将运行一个与客户端请求上下文分离的后台任务,如果任务成功启动,该任务将结束。
我知道有HostedService,但问题是HostedService是在服务器启动时启动的,据我所知,没有办法从控制器手动启动HostedService。
这里有一个简单的代码来演示这个问题。
[Authorize(AuthenticationSchemes = "UsersScheme")]
public class UsersController : Co
我正在将ASP.NET 5 RC1项目迁移到ASP.NET Core,遇到了一个我还没有看到或找到解决方案的有趣问题。
为了在启动中使用配置设置,我以前以以下方式检索了配置
// Works fine for DI both in ASP.NET 5 RC1 and ASP.NET Core
services.Configure<SomeConfigurationClass>(Configuration.GetSection("SomeConfigurationSection"));
// How I previous retrieved the configur
我正在为我的Asp.Net Core2.0控制器编写单元测试。每个控制器都注入一个IUrlHelper服务,以方便创建Hateoas链接。此服务已在启动类的ConfigureServices方法中注册。这里是我的Startup类的快照:
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Infrastructure;
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
s
Control Panel -----------> Server
.NET Framework depends on ASP.NET Core
⚡ FAIL ⚡
我有一个使用ASP.NET Core2.1构建的web服务器,因为它应该同时运行在普通桌面计算机(Windows10)和IoT Pi (Windows10WindowsCore)上。到目前为止还不错。
在服务器在桌面计算机上运行的情况下,我想提供一个基于WinForms (.NET Framework4.7)的服务器控制面板。因
有没有办法获得我们在服务中启动时使用的IServiceCollection?我想要一份当前所有服务的列表。依赖它是行不通的,因为服务集合没有在DI中注册
public class Test
{
public Test(IServiceCollection collection)
{
this.services=collection;
}
}