我正在尝试在Azure Notification集线器上配置ios推送通知。我知道我做的一切都是正确的,因为我之前做过这件事,并且我有一份清单。但出于某种原因,它没有任何合理的解释就失败了。我得到的错误是
The remote server returned an error: (407) Proxy Authentication Required..TrackingId:b12dc955-b24f-42f9-acc4-3440c4d60ab4,TimeStamp:03/04/2014 10:48
和StackTrace
Exception rethrown at [0]:
at Microsoft.ServiceBus.Common.ExceptionDispatcher.Throw(Exception exception)
at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
at Microsoft.ServiceBus.Common.AsyncResult`1.End(IAsyncResult asyncResult)
at Microsoft.ServiceBus.Messaging.ServiceBusResourceOperations.EndGetAll(IAsyncResult asyncResult, String& continuationToken)
at Microsoft.ServiceBus.NamespaceManager.EndGetRegistrationsByTag(IAsyncResult result)
at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at RD8MobileApp.Api.Services.PushNotificationService.<RegisterForNotifications>d__1.MoveNext() in c:\Development\TFS\RD8\MobileApp.Api\Services\PushNotificationService.cs:line 29
有人可以帮忙吗?
答案 0 :(得分:1)
我认为Henrik是对的。
您必须在需要身份验证信息的代理服务器后面。
您可以添加以下代码......
WebRequest.DefaultWebProxy = new WebProxy("http://proxyserveraddress:port");
WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;
然后您就可以通过API发送通知。
我使用当前用户的凭据,但您可以创建自定义NetworkCredentials。
希望它有所帮助。
哈维尔
答案 1 :(得分:0)
我的猜测是,您正坐在HTTP代理(可能是防火墙)后面,希望您在进入实际Azure通知中心之前进行身份验证。您可能必须在Notification Hub客户端API上设置代理的凭据 - 我不太确定如何执行此操作但我希望文档可以指出您正确的方向。
的Henrik