【发布时间】:2014-01-24 02:28:11
【问题描述】:
我的WCF 应用程序中有一个场景,我需要在异常时将请求记录到数据库中 我已将请求存储在字典中并使用IsFault 检查我的请求是否有问题/strong>,如果是错误,我已经将其记录到数据库中
public static string key;
Dictionary<string , string> actionToReplyAction;
String value = "";
public NLog.Logger _logger = NLog.LogManager.GetCurrentClassLogger();
public void AfterReceiveReply(ref Message reply, object correlationState)
{
if (reply.IsFault)
{
string requestAction = (string)correlationState;
_logger.Debug("Request :::: " + key);
_logger.Debug("Response :::: " + reply.ToString());
}
}
public object BeforeSendrequest(ref Message request, IClientChannel channel)
{
key = request.ToString();
return null;
}
我如何在响应丢失时记录请求。我是WCF 的新手:如果你能给我示例代码,那会很有帮助。
【问题讨论】:
-
迷路是什么意思?
-
如果响应在到达 AfterRecieveReply 之前就丢失了,或者如果响应没有到达 Afterrecievereply,则类似于超时异常
-
如果没有响应怎么办,然后它没有来 afterrecievereply 正确....比我如何记录请求,只要它不去 AfterRecieveReply 和响应丢失。
-
你不能在那个时候 - 它已经丢失了。您必须在其他地方记录它 - 可能在服务以
SendReply(或任何方法名称)发送它之前。问题是你必须记录所有你不想做的事情。 -
所以我们无法在响应丢失时捕获请求
标签: asp.net wcf web-services exception logging