Всем доброго времени суток!
Столкнулся со следующей проблемой.
Кейс такой нужно писать логи через NLog в очереди RabbitMQ.
Для этого использую библиотеку Nlog.RabbitMQ.Target.dll
Добавляю ее в папку MyApp\bin\
Затем настраиваю файлы nlog.config:
nlog.targets
xsi:type="RabbitMQ"
appid="CreatioDemo"
topic="${uppercase:${level}}"
username="${rmqUser}"
password="${rmqPassword}"
hostname="${rmqHost}"
exchange="${rmqExchange}"
exchangeType="topic"
port="${rmqvPort}"
vhost="${rmqvHost}"
layout="${Date} [${ThreadIdOrName}] ${uppercase:${level}} ${UserName} ${MethodName} - ${Message}"
messageSource="nlog://${machinename}/${logger}"
useJSON ="true">
при перезапуске пула конект к Rabbit создается но логи не пишуться.
Для этого нужно добавить Nlog.RabbitMQ.Target.dll в папку MyApp\Terrasoft.WebApp\bin\
И тут возникает проблема при перезапуске пула или при логине в систему:
[FileLoadException: Could not load file or assembly 'System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
StackExchange.Redis.PhysicalConnection.BeginConnectAsync(LogProxy log) +0
StackExchange.Redis.PhysicalBridge.GetConnection(LogProxy log) +461
StackExchange.Redis.ServerEndPoint.CreateBridge(ConnectionType type, LogProxy log) +98
StackExchange.Redis.ServerEndPoint.GetBridge(ConnectionType type, Boolean create, LogProxy log) +60
StackExchange.Redis.ConnectionMultiplexer.ActivateAllServers(LogProxy log) +195
StackExchange.Redis.d__142.MoveNext() +7816
[AggregateException: One or more errors occurred.]
System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) +4593189
System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) +13992992
StackExchange.Redis.ConnectionMultiplexer.ConnectImpl(Object configuration, TextWriter log) +220
Terrasoft.Redis.StackExchangeAdapters.RedisClientsManagerAdapter..ctor(String connectionStringName, RedisConfigSection configSection) +273
Проверил версию System.Threading.Tasks.Extensions в сборке Nlog.RabbitMQ.Target.dll и ту что используется в Ceratio - совпадают.
Подскажите как можно это исправить?
Нравится
Алексей, добрый день!
Исходя их ошибки попробуйте перезапустить redis.
Поскольку на данный момент система не поддерживает внедрение Nlog.RabbitMQ.Target.dll, то более детальной рекомендации мы дать не можем. Советую ознакомиться с этим обсуждением.