我試圖在WCF服務上設置Raygun.io,儘管網站上有簡單的說明,但運行得很順利。在WCF REST服務上設置Raygun
我已經註冊了我的帳戶,通過安裝在的NuGet包Mindscape.Raygun4Net
,然後嘗試以下方法:
Web.config文件的方法: 我增加了配置部分,與我的聯盟的Raygun節鍵,然後將該模塊添加到下。沒有記錄。
的Global.asax方法: 我嘗試添加一個RaygunClient
對象Global.asax中,然後發送上Application_Error
例外。沒有記錄任何內容,並且Application_Error
內的斷點從未被擊中。
IErrorHandler方法:這其中實際上得到記錄到Raygun的錯誤,但有其自身的問題:
錯誤處理程序:
public class RaygunLogger : IErrorHandler
{
private RaygunClient _client = new RaygunClient("5xqBOzTBrzIsS++3vsbFZw==");
public void ProvideFault(Exception error, MessageVersion version, ref Message fault)
{
}
public bool HandleError(Exception error)
{
_client.Send(error);
return false;
}
}
行爲:
public class RaygunServiceBahavior : IServiceBehavior
{
public void AddBindingParameters(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase, Collection<ServiceEndpoint> endpoints,
BindingParameterCollection bindingParameters)
{
}
public void ApplyDispatchBehavior(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
{
IErrorHandler errorHandler = new RaygunLogger();
foreach (ChannelDispatcher channelDispatcher in serviceHostBase.ChannelDispatchers)
{
channelDispatcher.ErrorHandlers.Add(errorHandler);
}
}
public void Validate(ServiceDescription serviceDescription, ServiceHostBase serviceHostBase)
{
}
}
行爲擴展:
public class RaygunBehaviorExtensionElement : BehaviorExtensionElement
{
public override Type BehaviorType
{
get { return typeof(RaygunServiceBahavior); }
}
protected override object CreateBehavior()
{
return new RaygunServiceBahavior();
}
}
的異常會被拋出,那麼Handle_Error
方法將被調用,發送錯誤Raygun,但它總是發送兩個例外,而不是一個。第一個例外是ObjectDisposedException: The message object has been disposed
。
有沒有人有幸在WCF上設置Raygun?如果是這樣,你是否有同樣的行爲,或者你能看到我的行爲有什麼不同?
這已在Raygun4Net 4.2.1版中修復。如上所示放置raygun鉤現在應該可以正常工作。 這個特定的錯誤是在這裏報道: https://raygun.io/forums/thread/17338#17488 另一個相關的異常被固定在Raygun4net 5.0.1報告如下: https://raygun.io/論壇/線程/ 19164#19781 – 2015-04-27 05:07:10