使用下面的方法,我之前(直到上周)可以创建一个“混合”类型的服务总线,然后可以添加一个通知中心。然而,它突然停止工作。它创建一个具有“Messaging”类型的服务总线,当它尝试创建通知中心时,我收到以下错误:
Enity xxxxxx,创建通知中心失败,错误被禁止
public ServiceBusNamespaceResponse CreateServiceBus(SubscriptionCloudCredentials credentials, string regoin)
{
var serviceBushubClient = CloudContext.Clients.CreateServiceBusManagementClient(credentials);
var checkserviceBusResponse = serviceBushubClient.Namespaces.CheckAvailability(_deploymentName);
if (checkserviceBusResponse.IsAvailable)
{
try
{
var serviceBusClientResponse = serviceBushubClient.Namespaces.Create(_deploymentName, regoin);
_serviceBusEndpoint = serviceBusClientResponse.Namespace.ServiceBusEndpoint.ToString();
return serviceBusClientResponse;
}
catch (CloudException ex)
{
Console.WriteLine(ex.ErrorMessage);
return null;
}
}
return null;
}
和
public bool CreateNotificationHub(SubscriptionCloudCredentials credentials)
{
SBNotificationHubManager notificationHub;
EntityDescription servesBus = new EntityDescription();
servesBus.Name =_deploymentID;
var des = new MyNotificationHubDescription("push-hub-" + TenantID, servesBus);
notificationHub =
ResourceFactory.Get( _subscriptionID,
new X509Certificate2(Convert.FromBase64String(RowData._base64EncodedCert)),
SBRestResourceType.NHub, des) as SBNotificationHubManager;
if (notificationHub != null)
{
// Console.WriteLine("Created Notification Hub: {0}{1}", Environment.NewLine, notificationHub.LookUp().ToString());
if (notificationHub.Create())
{
Console.WriteLine("Created Notification Hub: {0}{1}", Environment.NewLine, notificationHub.LookUp().ToString());
notificationHub.WaitUntillActive();
return true;
}
}
return false;
}
我想知道最近天蓝色的东西是否发生了变化?任何人都可以建议如何在c#中创建服务总线(消息/通知中心)时定义它的类型。上述方法的默认值是消息传递。我需要混合,但通知集线器类型在我的情况下也可以正常工作。
谢谢
答案 0 :(得分:0)
现在,您必须明确选择Messaging(用于主题/队列/事件中心)或NotificationHub(用于通知中心)。这是个主意。
关于实施。观察源代码我可以看到接受ServiceBusNamespaceCreateParameters参数的重载:
Task<ServiceBusNamespaceResponse> CreateNamespaceAsync(string namespaceName, ServiceBusNamespaceCreateParameters namespaceEntity, CancellationToken cancellationToken);
该类具有NamespaceType
的公共属性public NamespaceType NamespaceType{...
所以你可能可以将它设置为NamespaceType.NotificationHub然后继续创建命名空间。