Мы используем NSB 5. У нас есть конечная точка NSB («BusinessEndpoint») на Server1 и конечная точка NSB Audit («AuditEndpoint») на сервере Server2.NServiceBus: конечные точки аудита на разных серверах
"BusinessEndpoint" настроен на отправку аудита сообщений "AuditEndpoint", используя следующую конфигурацию:
<section name="AuditConfig" type="NServiceBus.Config.AuditConfig, NServiceBus.Core" />
...
<AuditConfig QueueName="[email protected]" />
AuditEndpoint настроенное как так:
public class EndpointConfig : IConfigureThisEndpoint, AsA_Server
{
public void Customize(BusConfiguration configuration)
{
configuration.EndpointName("AuditEndpoint");
configuration.UseSerialization<JsonSerializer>();
configuration.UsePersistence<NHibernatePersistence>();
// stop processing incoming subscription control messages
configuration.Pipeline.Remove("ProcessSubscriptionRequests");
var conventions = configuration.Conventions();
conventions.DefiningMessagesAs(t => t.Namespace != null && t.Namespace.Contains("Messages"));
}
}
- Endpoints на Server1 может отправлять обычные (не аудиторские) сообщения конечным точкам на Server2 с помощью NServiceBus.
- Аудит работает для всех конечных точек, установленных на сервере Server2 (тот же сервер, что и AuditEndpoint).
Однако AuditEndpoint не получает никаких сообщений аудита из BusinessEndpoint.
Возможно ли проводить аудит на разных серверах только с одной аудиторией?
Благодарим за помощь.
Я обновил имя конечной точки, что было неверно в моем примере кода. Спасибо, проверит исходящую очередь – jonho
У нас были некоторые необработанные сообщения, сидящие в исходящей очереди. На двух серверах произошла реконфигурация локального диспетчера трафика. Таким образом, все, что требовалось, это перезапуск BusinessEndpoint, и сейчас работает аудит. – jonho