2010-10-26 111 views
2

在Silverlight应用程序的客户端处理错误的正确方法是什么?我尝试构建一个服务端点,它将接收有关错误的详细信息,然后将该字符串写入数据库。问题是,错误的文本超过了最大字节长度,所以我无法发送异常消息和堆栈跟踪。处理客户端错误的更好方法是什么?Silverlight记录错误

回答

0

使用这种模式如果你发现你的消息是太长发送给你的日志Web服务,然后请尝试设置这样的结合性质maxBufferSizemaxStringContentLength适当大的值。他们默认为16KB,我个人将其设置为2147483647(即int.MaxValue)。

显然你不能直接发送原始异常到日志Web服务(异常是不可序列化的),我所做的是编写一个函数,它接受一个异常,并将其转化为一个WCF友好结构,传递给我的日志记录结束点。当然,你需要确保如果失败了,你需要有一个备份计划,比如,如果你正在浏览器中运行,可以将它记录到独立的存储器中,或者如果你正在运行提升的OOB,则将它记录到用户的文件系统中。

0

您不应该考虑通过服务记录错误消息。如果您想记录的错误与服务本身有关,该怎么办?也许承载所有相关服务(包括错误日志记录服务)的服务器无法访问或关闭。应在客户端记录客户端错误,并在连接到服务可用时定期刷新到服务器。

那是我会做什么?