0

一切看起來都正確配置。我已經去了很多次了。下面是我的了:當我連接NotifcationHub消息不工作在我的Xamarin iOS應用程序

服務總線資源管理器返回此:

<23:36:44> The application is now connected to the 

sb://localesnotify.servicebus.windows.net/ service bus namespace. 
<23:36:44> MessagingFactory successfully created 
<23:37:24> Exception: The remote server returned an error: (500) Internal Server Error. TrackingId:20b6388b-2599-428a-a7b8-2c81eba6b309,TimeStamp:3/4/2017 4:37:24 AM 
<23:37:24> InnerException: The remote server returned an error: (500) Internal Server Error 

在所有情況下,當我在我的設備上測試,RegisteredForRemoteNotifications成功返回。

public override void RegisteredForRemoteNotifications(UIApplication application, NSData deviceToken) 
    { 
     Hub = new SBNotificationHub(Constants.ConnectionString, Constants.NotificationHubPath); 

     Hub.UnregisterAllAsync(deviceToken, (error) => { 
      if (error != null) 
      { 
       Console.WriteLine("Error calling Unregister: {0}", error.ToString()); 
       return; 
      } 

      NSSet tags = null; // create tags if you want 
      Hub.RegisterNativeAsync(deviceToken, tags, (errorCallback) => { 
       if (errorCallback != null) 
        Console.WriteLine("RegisterNativeAsync error: " + errorCallback.ToString()); 
      }); 
     }); 

     var alert = new UIAlertView("Remote Notifications", "Registered!", null, "OK", null); 

     alert.Show(); 
    } 

我的證書和資源調配譜上都天青& Xamarin似乎正確配置。

我試過不同的連接字符串和通知中心網址。不確定需要使用哪些。但我嘗試了所有想法。

// Azure app-specific connection string and hub path 
    public const string ConnectionString = "Endpoint=sb://localesnotify.servicebus.windows.net/;SharedAccessKeyName=DefaultFullSharedAccessSignature;SharedAccessKey=1QMNeVitGRUxoZvkgnx8klpJGsJ5LfX/057jL+CD2VE="; 
    public const string NotificationHubPath = "sb://localesnotify.servicebus.windows.net"; 

當我測試從Azure發送時,它表示已成功完成,但我從未收到消息。

我的ReceivedRemoteNotification不會觸發。所以我猜我的客戶端沒有正確連接。另外在Classic門戶中,它表示沒有爲所選平臺找到註冊。

 public override void ReceivedRemoteNotification(UIApplication application, NSDictionary userInfo) 
    { 
     ProcessNotification(userInfo, false); 
    } 

任何想法?

+0

當您在Azure中將其命名時,只需使用集線器的名稱更改'NoficationHubPath'。 – apineda

+0

我有一些選擇。這是來自經典門戶:https://localesnotify.servicebus.windows.net/localesnotify。這是來自新門戶: 服務端點 https://LocalesNotify.servicebus.windows.net:443/。這是應用程序服務http://locales.azurewebsites.net/ – Spinteractive

+0

這不是一個網址只是一個名稱。在天藍色的這將是對象的名稱。該圖標通常爲橙色。 – apineda

回答

1

NotificationHubPath更改爲Azure中Hub的名稱。

爲了找到它登錄到Azure和點擊NotificationHub對象:

Azure notification hub

然後選擇屬性選項和副本名稱

Notification Hub properties

這是您將作爲SBNotificationHub構造的notificationHubPath使用的值。

var hub = new SBNotificationHub ("azureKey", "yournotificationhub"); 

注:類型也全部小寫。

相關問題