来自服务器事件心跳端点的 404
404 from server events heartbeat endpoint
我们从频道订阅的服务器事件中收到比例较低但一致的 404。这似乎只能通过我们的反应界面,它在这里使用打字稿适配器:
https://docs.servicestack.net/typescript-server-events-client
如果我没理解错的话,404return是客户端在超时设置前没有响应心跳,所以传递的id是无效的。
(HeartbeatInterval =60,IdleTimeout = 180)
查看应用程序见解在一小时内放弃了 330 次失败中的 6 次:
404s logged
深入研究请求,似乎没有什么不妥:
Request Properties
问题是,即使 DebugMode 和 ReturnInnerException 都为真,我也看不到服务器上有任何错误或报告中缺少 ID。我有 运行 这个针对本地副本和服务器,带有连接到服务器事件提要的 c# 客户端,并且在使用 fiddler 观察时似乎无法获得 return 的 404。
有什么方法可以捕获这些服务器端并查看它们为什么 returning 404?我只能假设出现故障并且 returning 404 但它隐藏在服务堆栈日志处理层后面。这是否报告给日志记录层,因为它很可能经常发生因此被丢弃?
心跳中的404响应是由于subscription no longer existing,您可以使用OnHeartbeatInit
回调来检查每个心跳,例如:
Plugins.Add(new ServerEventsFeature
{
OnHeartbeatInit = req =>
{
var subscriptionId = req.QueryString["id"];
var subscription = req.TryResolve<IServerEvents>().GetSubscriptionInfo(subscriptionId);
if (subscription == null)
{
//... subscription no longer exists
}
}
});
这会让您检查 404 心跳响应的订阅,但不会告诉您订阅被删除的原因。
您可以处理 OnUnsubscribe
以在取消订阅时获得回调,这应该有助于确定订阅被删除的原因。
为了帮助调试,您可以升级到 latest v5.4.1 on MyGet which now has embedded pdbs and source-link enabled,这样您就可以轻松调试 ServiceStack 源代码。
我们从频道订阅的服务器事件中收到比例较低但一致的 404。这似乎只能通过我们的反应界面,它在这里使用打字稿适配器:
https://docs.servicestack.net/typescript-server-events-client
如果我没理解错的话,404return是客户端在超时设置前没有响应心跳,所以传递的id是无效的。 (HeartbeatInterval =60,IdleTimeout = 180)
查看应用程序见解在一小时内放弃了 330 次失败中的 6 次:
404s logged
深入研究请求,似乎没有什么不妥:
Request Properties
问题是,即使 DebugMode 和 ReturnInnerException 都为真,我也看不到服务器上有任何错误或报告中缺少 ID。我有 运行 这个针对本地副本和服务器,带有连接到服务器事件提要的 c# 客户端,并且在使用 fiddler 观察时似乎无法获得 return 的 404。
有什么方法可以捕获这些服务器端并查看它们为什么 returning 404?我只能假设出现故障并且 returning 404 但它隐藏在服务堆栈日志处理层后面。这是否报告给日志记录层,因为它很可能经常发生因此被丢弃?
心跳中的404响应是由于subscription no longer existing,您可以使用OnHeartbeatInit
回调来检查每个心跳,例如:
Plugins.Add(new ServerEventsFeature
{
OnHeartbeatInit = req =>
{
var subscriptionId = req.QueryString["id"];
var subscription = req.TryResolve<IServerEvents>().GetSubscriptionInfo(subscriptionId);
if (subscription == null)
{
//... subscription no longer exists
}
}
});
这会让您检查 404 心跳响应的订阅,但不会告诉您订阅被删除的原因。
您可以处理 OnUnsubscribe
以在取消订阅时获得回调,这应该有助于确定订阅被删除的原因。
为了帮助调试,您可以升级到 latest v5.4.1 on MyGet which now has embedded pdbs and source-link enabled,这样您就可以轻松调试 ServiceStack 源代码。