0

真的讓我感到驚訝的是,像微軟這樣的公司不會給你可讀的錯誤信息。我只是試圖將設備註冊到我們天藍色的通知中心。Xamarin通知中心註冊錯誤

if (App.DeviceInfo.DeviceManufacturer == "Apple") 
{ 
    if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0)) 
    { 
     var pushSettings = UIUserNotificationSettings.GetSettingsForTypes(
       UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, 
       new NSSet()); 

     UIApplication.SharedApplication.RegisterUserNotificationSettings(pushSettings); 
     UIApplication.SharedApplication.RegisterForRemoteNotifications(); 
    } 
    else 
    { 
     UIRemoteNotificationType notificationTypes = UIRemoteNotificationType.Alert | UIRemoteNotificationType.Badge | UIRemoteNotificationType.Sound; 
     UIApplication.SharedApplication.RegisterForRemoteNotificationTypes(notificationTypes); 
    } 
} 

註冊回調

public override void RegisteredForRemoteNotifications(UIApplication app, NSData deviceToken) 
{ 
    //// Connection string from your azure dashboard 
    var cs = WindowsAzure.Messaging.SBConnectionString.CreateListenAccess(
     new NSUrl(AzureServiceBusConnectionString), 
     AzureHubName); 

    // Register our info with Azure 
    var hub = new WindowsAzure.Messaging.SBNotificationHub(cs, AzureHubName); 
    hub.RegisterNativeAsync(deviceToken, null, err => 
    { 
     if (err != null) 
     { 
      Console.WriteLine("Error: " + err.Description); 
      Console.WriteLine(err.DebugDescription); 
     } 
     else 
      Console.WriteLine("Success"); 
    }); 
} 

這裏的錯誤訊息,我回去

Error: Error Domain=WindowsAzureMessaging Code=401 "URLRequest failed for { URL: https://****.servicebus.windows.net/****/Registrations/?$filter=deviceToken+eq+'****'&api-version=2013-04 } with status code: unauthorized" UserInfo={NSLocalizedDescription=URLRequest failed for { URL: https://****.servicebus.windows.net/newsernotificationhub/Registrations/?$filter=deviceToken+eq+'****'&api-version=2013-04 } with status code: unauthorized}

所以,唯一的消息我得到的回覆是unauthorized,只是想知道一些原因,爲什麼它會當我使用azure中給定的端點url時,請返回unauthorized,並返回通知中心名稱。

+0

你可以通過[診斷指南](https://docs.microsoft.com/en-us/azure/notification-hubs/notification-hubs-push-notification-fixer)並更新問題如果有東西仍然不起作用?首先,瞭解問題出在服務端還是客戶端,這一點很重要。目前聽起來更像客戶端。提供了可能錯誤的中心證書。 –

+0

那麼沒有客戶端。我正在Xamarin應用程序中註冊設備服務器端。嘗試與天藍色的通知中心通話以註冊設備。我不確定該頁面如何幫助,我認爲這可能是在處理實際發送通知?可能是錯誤的,但這就是我所理解的。 – jdmdevdotnet

+0

'「在最初的測試/分期階段,可能會發生未能發送通知的情況,這可能表示配置問題,或者可能發生在生產中,可能會導致全部或部分通知丟失,從而指示出一些更深的應用程序或消息傳遞模式問題。」 '這涉及診斷沒有交付的通知。與我的問題無關。 – jdmdevdotnet

回答

0

我的問題是一些我看到的文檔,它告訴你做的這個

//// Connection string from your azure dashboard 
var cs = WindowsAzure.Messaging.SBConnectionString.CreateListenAccess(
    new NSUrl(AzureServiceBusConnectionString), 
    AzureHubName); 

// Register our info with Azure 
var hub = new WindowsAzure.Messaging.SBNotificationHub(cs, AzureHubName); 

如果真的那麼有必要爲這個

var hub = new WindowsAzure.Messaging.SBNotificationHub(AzureServiceBusConnectionString, AzureHubName); 

因此,當你實例化一個新SBNotificationHub ,您只需提供連接字符串和集線器名稱。沒有做CreateListenAccess

相關問題