【发布时间】:2017-08-28 20:53:44
【问题描述】:
我的代码:
var uri = new Uri($"{domain}/3/device/{deviceToken}");
var client = new Http2Client(uri); // using HttpTwo
var headers = new NameValueCollection
{
{"apns-id", Guid.NewGuid().ToString()},
{"apns-expiration", "0"},
{"apns-priority", "10"},
{"apns-topic", topic},
{"authorization", $"bearer {jwtToken}"}
};
var body = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(payload));
var response = await client.Send(uri,HttpMethod.Post, headers, body);
这段代码大部分时间都能给出正确的响应,但偶尔我会得到操作超时异常。
---> System.TimeoutException:操作已超时。 在 HttpTwo.Http2Client.d__19.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 HttpTwo.Http2Client.d__17.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在 HttpTwo.Http2Client.d__15.MoveNext()
【问题讨论】:
-
我们也有这个。你找到解决办法了吗?
-
我也有同样的问题,有解决办法吗?
-
我在一台运行 Windows Server 2016 数据中心版的服务器上遇到了完全相同的问题。在两台 PC 上尝试过,在那里和服务器上得到了非常不同的结果。与这个 sn-p 的唯一区别是我使用的是 HttpTwo 的 HttpClient API 而不是 Http2Client - 但也尝试直接使用 Http2Client 并得到相同的结果。尝试针对 .Net 4.5.2 和 4.7 所以在服务器上,大约 50% 的推送运行到超时。在我的一台 PC(均为 Windows 10)上,大约 10% 的推送。在另一台 PC 上,所有请求都超时。有人有什么想法吗?
标签: c# apple-push-notifications http2