c# - 在 .NET Core 控制台应用程序中托管 Web API 和另一个自定义服务
问题描述
我假设我是 .NET Core 的新手,通常在完整框架中我使用 TopShelf 将控制台应用程序用作服务。
现在,我已经成功创建了为 WebApi 提供服务的 .NET Core 应用程序,但我需要附加我编写的另一个服务(它是一个接收消息并将它们分派回来的 IBMMQ 服务)。
我当前的 program.cs 是
class Program
{
static void Main(string[] args)
{
DbProviderFactories.RegisterFactory("System.Data.SqlClient", SqlClientFactory.Instance);
Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory);
var host = WebHost.CreateDefaultBuilder()
// .UseContentRoot(pathToContentRoot)
.UseStartup<Startup>()
.Build();
host.Run();
}
}
这是我的创业公司
class Startup
{
private readonly Container container = new Container();
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
IntegrateSimpleInjector(services);
services.AddControllers();
services.AddSimpleInjector(container);
services.BuildServiceProvider(validateScopes: true)
.UseSimpleInjector(container);
}
private void IntegrateSimpleInjector(IServiceCollection services)
{
container.Options.DependencyInjectionBehavior =
new SerilogContextualLoggerInjectionBehavior(container.Options);
services.AddHttpContextAccessor();
services.AddSingleton<IControllerActivator>(
new SimpleInjectorControllerActivator(container));
services.EnableSimpleInjectorCrossWiring(container);
services.UseSimpleInjectorAspNetRequestScoping(container);
}
public void Configure(IApplicationBuilder app, Microsoft.AspNetCore.Hosting.IHostingEnvironment env)
{
InitializeContainer(app);
DataConnection.DefaultSettings = new Linq2DbSettings();
LinqToDB.Common.Configuration.Linq.AllowMultipleQuery = true;
app.UseRouting();
app.UseEndpoints(endpointRouteBuilder => endpointRouteBuilder.MapControllers());
container.RegisterMvcControllers(app);
container.Verify();
}
private void InitializeContainer(IApplicationBuilder app)
{
//register container
}
}
有没有办法可以在这里添加我的服务启动?
谢谢
解决方案
推荐阅读
- c# - 无法在 ASP.NET MVC-C# 的级联下拉列表中获取 Chil 表列表
- awk - AWK如何在awk中的特定步骤中更改行?
- python - 如何将整数数组与代码中的字符串数组相关联?
- c# - 如何刷新 MySQL-Connector-Net 池中连接的 DNS?
- flutter - 从颤动的警报对话框中更改地图的值时如何在ListVIew上查看动态值?
- azure-devops - 在 Azure DevOps 中等待 ADF 集成运行时 http start 调用完成
- migration - 如何将非常旧的 ArcGIS.Client dll 更新到 ArcGISRuntime 版本 100.7
- python - wtform selectfield 验证不选择列表中的第一个
- c# - 如何通过 Xamarin Forms 使用 WPF 隐藏任务栏和最大化窗口
- vue.js - 在 Vue.js 的 V-if 中使用 V-for 是一种好习惯吗?