3

我需要对以下问题的最终答案!:-)

我想知道您是否可以为 WCF Web 服务启用健康监控。我在 IIS 中托管了许多服务,并将其配置为在引发任何异常时发送团队电子邮件通知。我觉得健康监控不适用于 WCF 服务,我必须配置 WCF 跟踪http://msdn.microsoft.com/en-us/library/ms733025.aspx

谢谢

4

1 回答 1

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>

注意:这假设您已打开运行状况监控。

于 2010-05-28T06:03:04.327 回答