2010-05-28 111 views

回答

2

我試了一下面前過,但所有的解決方案顯得過於複雜。

我最終只是手動做。

首先設置一個自定義WebEvent。例如:

public class SyncError : WebBaseErrorEvent 
{ 
    public SyncError(string message, Exception e) 
    : base(message, "Sync", WebEventCodes.WebExtendedBase + 1, 0, e) 
    {  
    } 

    public override void FormatCustomEventDetails(WebEventFormatter formatter) 
    { 
    base.FormatCustomEventDetails(formatter); 
    formatter.AppendLine(ErrorException.ToString()); 
    } 
} 

下使用它像:

// WCF method 
public int Sync() 
{ 
    try 
    { 
    // do normal stuff 
    } 
    catch (Exception ex) 
    { 
    var e = new SyncError("Error in Sync", ex); 
    e.Raise(); 
    throw; 
    } 
} 

最後修改web.config:

<eventMappings> 
    <add name="Sync Errors" type="SyncLibrary.SyncError, SyncLibrary"/> 
</eventMappings> 

<rules> 
    <add name="Sync Errors SQL" eventName="Sync Errors" 
     provider="SqlWebEventProvider" 
     profile="Default" 
     minInstances="1" 
     maxLimit="Infinite" 
     minInterval="00:00:00" /> 
</rules> 

注:這裏假設你有健康監測開啓。

+1

謝謝leppie!讓我今天實施它,我會讓你知道的!乾杯, 胡安 – Intrigue 2010-05-31 00:07:48

+0

先生elsharpo,你會讓它知道嗎?謝謝 – Kiquenet 2010-07-20 14:30:35