Как настроить Hangbfire в ядро ​​ASP.NET с использованием структуры структуры structureMap .NET и разрешения двунаправлеC#

Место общения программистов C#
Ответить
Anonymous
 Как настроить Hangbfire в ядро ​​ASP.NET с использованием структуры структуры structureMap .NET и разрешения двунаправле

Сообщение Anonymous »

Я только что стучал головой о стену, не уверен, что происходит. < /p>

public IServiceProvider ConfigureServices(IServiceCollection services)
{
var connectionString = Configuration.GetConnectionString("DocumentDbConnection");

services.AddMvc(o =>
{
o.Filters.Add(typeof(HttpGlobalExceptionFilter));

})
.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

services
.AddHangfire(x => x.UseSqlServerStorage(connectionString));

// configure StructureMap Dependency Injection
var container = new Container();
container.Configure(config =>
{
config.Scan(scan =>
{
scan.TheCallingAssembly();
scan.AssembliesAndExecutablesFromApplicationBaseDirectory();
scan.WithDefaultConventions();
scan.AddAllTypesOf(typeof(IIntegrationEventHandler));
});
// other configurations
config.Populate(services);
});

// tried this too
//GlobalConfiguration.Configuration.UseStructureMapActivator(container);

return container.GetInstance();
}
< /code>

и мой метод настройки: < /p>

public void Configure(IApplicationBuilder app, IHostingEnvironment env, IContainer container)
{
//using Hangfire.StructureMap
GlobalConfiguration.Configuration.UseStructureMapActivator(container);

// exception is thrown on UsingHangfireServer()
app
.UseHangfireServer()
.UseMvc();
}

< /code>

Я продолжаю получать исключение от structureMap о двунаправленной зависимости: < /p>

Bi-directional dependency relationship detected!
Check the StructureMap stacktrace below:
1.) Instance of Hangfire.Client.IBackgroundJobFactory ('Hangfire.Client.BackgroundJobFactory, Hangfire.Core, Version=1.7.0.0, Culture=neutral, PublicKeyToken=null')
2.) new BackgroundJobFactory(*Default of IJobFilterProvider*, *Default of IBackgroundJobFactory*)
3.) Hangfire.Client.BackgroundJobFactory ('Hangfire.Client.BackgroundJobFactory, Hangfire.Core, Version=1.7.0.0, Culture=neutral, PublicKeyToken=null')
4.) Instance of Hangfire.Client.IBackgroundJobFactory ('Hangfire.Client.BackgroundJobFactory, Hangfire.Core, Version=1.7.0.0, Culture=neutral, PublicKeyToken=null')
5.) Container.GetInstance(Hangfire.Client.IBackgroundJobFactory)
6.) Container.TryGetInstance(Hangfire.Client.IBackgroundJobFactory)

< /code>

Я использую пакеты hangfire.aspnetcore, hangfire.sqlserver, hangfire.structuremap, все v 1.7.0 < /p>

Я также попробовал просто использовать пакет Hangfire, но я не могу настроить его в классе Startup, потому что ни один из методов расширения. /> Также обратите внимание, что эта точная настройка отлично работает для проекта Targeting .net Core. < /p>

Любой совет был бы очень признателен! < /p>

Подробнее здесь: https://stackoverflow.com/questions/557 ... g-net-fram
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»