问题
I am trying to send a message to notification hub, but my tags are not saving.
I checked service hub with service hub explorer, and tags are empty:
Registration of device:
var hs = new HashSet<string>();
hs.Add(tag);
hs.Add(sys.ToString());
switch (sys)
{
case SystemVendorEnum.Android:
await Hub.CreateGcmNativeRegistrationAsync(pnsHandle, hs);
break;
case SystemVendorEnum.Ios:
await Hub.CreateAppleNativeRegistrationAsync(pnsHandle, hs);
break;
}
Test method invocation that sends message to hub:
// param1: json payload, param2: tag
await Hub.SendGcmNativeNotificationAsync("{ \"data\": { \"methodId\":\"1\" }}", "ae65d2d5-103e-4023-a784-c5c8e2684db0");
Is there anything I am missing? I don't have tags in notification hub:
Is that the case?
回答1:
I know, it's confusing, but there're two completely separate kinds of tags that have have no relationship to each other whatsoever:
- Tags that are within the context of Azure Notification Hub service. Those apply to device registrations. So, it's Notification Hubs service-specific and describes devices. See Routing and Tag Expressions for more details.
- Tags that as a concept of Azure Resource Manager (ARM). Those apply to any resource within Azure. So it's platform-specific and are used to describe any resource/service you have within Azure. See Using tags to organize your Azure resources for more details.
So when you call hs.Add(tag)
, the associated tags apply to the device registration (i.e. 'tags of the first kind') and should show up in the Service Bus explorer:
And if you go to Azure portal and navigate to any resource (or as you did, to your hub), you'll see ARM tags there (i.e. 'tags of the second kind'):
来源:https://stackoverflow.com/questions/36335644/why-are-azure-notification-hub-tags-not-saving