【问题标题】:WCF Web Services and native ASP.NET Health MonitoringWCF Web 服务和本机 ASP.NET 健康监控
【发布时间】:2010-05-28 05:42:11
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: .net wcf silverlight web-services health-monitoring


    【解决方案1】:

    我之前也尝试过,但所有解决方案看起来都太复杂了。

    我最终只是手动完成。

    首先设置一个自定义 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>
    

    注意:这假设您已开启健康监测。

    【讨论】:

    • 谢谢leppie!让我今天实施它,我会告诉你的!干杯,胡安
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    相关资源
    最近更新 更多