После создания концентратора событий я применяю правила. Могу ли я, например, применить правило Send и Listen к одной и той же политике общего доступа?
Код, который я пытаюсь использовать, кажется, «перезаписывает» предыдущее правило. Есть ли лучший способ, которым я должен делать это?
await eventHub.Update()
.WithNewSendRule(sendListenRuleNames)
.WithNewListenRule(sendListenRuleNames)
.ApplyAsync();
Приведенный выше код в конечном итоге будет применять только правило прослушивания к политике общего доступа.
ОБНОВЛЕНИЕ
Попробовав описанный выше способ, я попытался реализовать, используя комментарий Джея, подобный следующему:
List<AccessRights> accessRights = new List<AccessRights>();
accessRights.Add(AccessRights.Listen);
accessRights.Add(AccessRights.Manage);
foreach (var listenManageRuleNames in list)
{
await eventHub.Manager
.EventHubAuthorizationRules
.Inner
.CreateOrUpdateAuthorizationRuleWithHttpMessagesAsync(eventHubResource.ResourceGroup.Name, eventHubNamespace.Name, eventHubResource.Name, listenManageRuleNames, accessRights);
}
Но в итоге это выдает мне эту ошибку:
"{\"error\":{\"message\":\"Error setting value to 'Rights' on 'Microsoft.Cloud.ServiceBus.ResourceProvider.ArmVersionedEntities.ArmAuthorizationRuleDescription'. \",\"code\":\"BadRequest\"}}"
ОБНОВЛЕНИЕ 2 Я только попытался сделать только AccessRights.Listen, и это сработало. Сразу после этого я попытался сделать только AccessRights.Manage, и он не сработал, и выдал ту же ошибку.