Sentry没有为ASP.NET MVC站点记录404错误

时间:2017-05-27 10:52:47

标签: c# asp.net-mvc error-logging sentry

我已成功连接SharpRaven以从MVC和Web API控制器成功记录和捕获错误,但无法记录和捕获404错误。

我试图通过Application_Error这样做:

public class MvcApplication : System.Web.HttpApplication
{
    RavenClient _RavenClient;

    protected void Application_Start()
    {
        _RavenClient = new RavenClient(ConfigurationManager.AppSettings["RavenClient:DNS"]);

        ...
    }

    protected void Application_Error(object sender, EventArgs e)
    {
        _RavenClient.Capture(new SentryEvent(Server.GetLastError()));
    }
}

如果我在_RavenClient.Capture(...)上设置了一个断点,我可以看到捕获的错误,但此处捕获的404错误永远不会出现在https://sentry.io/

如果禁用其他控制器集成,对于遇到此行代码的非404异常也是如此。

为什么这不能完全运作的任何想法?有没有更好的方法可以让我有更好的工作机会?

1 个答案:

答案 0 :(得分:1)

如果我在RavenClient方法本身中需要Application_Error时创建Application_Start,那么一切都会按预期工作。似乎在protected void Application_Error(object sender, EventArgs e) { new RavenClient(ConfigurationManager.AppSettings["RavenClient:DNS"]) .Capture(new SentryEvent(Server.GetLastError())); } 中创建客户端然后再使用它时必定存在问题。

这是我修改后的工作代码:

if let url = URL(string: "wss://ios-devchallenge-11.tk/write?id={id}") {

        socket = WebSocket(url: url, protocols: ["chat", "superchat"])



        socket?.delegate = self
        socket?.connect()

    }