我有一个WCF服务来处理来自运行c的微控制器的请求。大部分时间都很顺利,如果出现问题,我已设置elmah来记录WCF服务中发生的错误。当WCF服务内部发生错误(ex数据库错误)时,这很好,但是当WCF服务接收到无效的数据json时,错误日志不是很有用。我得到像
这样的错误System.FormatException。 遇到无效字符''。
和
System.Xml.XmlException 遇到意外的角色'。'。
这让我知道出了什么问题,但我希望看到原始的json知道消息是什么样的,所以我可以修复微控制器中的错误。这可能吗?
服务的界面如下所示:
[ServiceContract]
public interface IDevCom
{
[OperationContract, WebInvoke(ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
ConnectResult Connect(ConnectParameter parameter);
}
当前错误处理程序看起来像
public class HttpErrorHandler : IErrorHandler
{
public bool HandleError(Exception error)
{
try
{
ExceptionUtility.LogException( error, nameof(HttpErrorHandler));
}
finally
{
}
return true;
}
public void ProvideFault(Exception error, MessageVersion version, ref Message fault)
{
if (error != null) //Notify ELMAH of the exception
{
if (System.Web.HttpContext.Current == null)
return;
Elmah.ErrorSignal.FromCurrentContext().Raise(error);
}
}
}