8

我们的一些最新 Web 服务应用程序一直在使用更新的 3.9.x 版本的 ServiceStack,我们即将更新我们的一个旧应用程序从 v3.5.x 使用 3.9.44.0。3.5.x 版本在 New Relic 上的报告非常好,但到目前为止,我们在 3.9.x 上的版本在 New Relic 上的报告很奇怪。有时它报告的流量很低,但有时它只是平淡无奇。

我们有一张 New Relic 的开放票,并被告知他们连接到 System.Web.HttpApplication.BeginRequest() 并且没有已知的时间表来更改他们在 DotNet 服务中的 ServiceStack 支持以解决任何可能的问题。

所以我们很好奇 ServiceStack 中是否有什么改变会因为任何原因绕过这个钩子?

或者是否有其他使用 New Relic 的人经历过这种情况并在没有 New Relic 参与的情况下找到了解决方案?

4

2 回答 2

7

我们终于能够找到解决问题的方法。较新的 ServiceStack 正在释放所有找到的事务实例,其中还包括由 New Relic 的服务代理创建的实例。为避免 New Relic 实例过早释放,可以在自己的 AppHost 中重写 AppHostBase.Release 方法:

public override void Release(object instance)
{
   if (instance.GetType().ToString().StartsWith("NewRelic.Agent", StringComparison.CurrentCultureIgnoreCase))
     return;

   base.Release(instance);
}
于 2013-07-29T13:24:12.617 回答
1

这与 New Relic 缺乏对框架后续版本的检测有关。如果发生变化,New Relic 将需要添加对它的支持。

于 2013-05-22T22:31:35.920 回答