我已成功连接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异常也是如此。
为什么这不能完全运作的任何想法?有没有更好的方法可以让我有更好的工作机会?
答案 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()
}