我需要对以下问题给出最终答案! : - )
我想知道您是否可以为WCF Web服务启用运行状况监视。我在IIS中托管了许多服务,并将其配置为在抛出任何异常时发送团队电子邮件通知。我觉得Health Monitoring不能用于WCF服务,我必须配置WCF跟踪http://msdn.microsoft.com/en-us/library/ms733025.aspx
谢谢
答案 0 :(得分: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>
注意:这假设您已启用健康监控。