Веб-службы WCF и собственный мониторинг состояния ASP.NET - PullRequest
3 голосов
/ 28 мая 2010

Мне нужен окончательный ответ на следующий вопрос! : -)

Мне было интересно, можно ли включить мониторинг работоспособности для веб-служб WCF. Я размещаю ряд служб в IIS и настроил их на отправку уведомления по электронной почте для команды при возникновении любых исключений. Я чувствую, что Мониторинг работоспособности не работает со службами WCF и что мне нужно настроить трассировку WCF http://msdn.microsoft.com/en-us/library/ms733025.aspx

Спасибо

1 Ответ

2 голосов
/ 28 мая 2010

Я тоже пробовал и раньше, но все решения выглядели слишком сложными.

В итоге я просто сделал это вручную.

Сначала настройте пользовательский 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>

Примечание: предполагается, что у вас включен мониторинг работоспособности.

...