我在后台线程上运行DotNetOpenAuth,定期调用OAuth授权的谷歌。
大约一天一次,也就是大约10,000个调用中就有一个,我得到以下异常:
发生未处理的异常,进程已终止。应用程序ID: DefaultDomain进程ID: 3316异常: System.NotImplementedException消息:该方法或操作未实现。在DotNetOpenAuth.Messaging.ProtocolException.GetObjectData(SerializationInfo obj的c:\Users\andarno\git\dotnetopenid\src\DotNetOpenAuth\Messaging\ProtocolException.cs:line 90中的StackTrace,StreamingContext context,ISurrogateSelector surrogateSelector,StreamingContext context,SerObjectInfoInit serObjectInfoInit,IFormatterConverter converter,ObjectWriter objectWriter,SerializationBinder binder),ISurrogateSelector surrogateSelector,StreamingContext context,SerObjectInfoInit #En20#,#En21# converter,#En22##En23#,#En24# binder)在#En4#图,在System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream对象,对象图,Header[]标头,Boolean fCheck)在System.Runtime.Remoting.Channels.CrossAppDomainSerializer.SerializeObject(Object obj,MemoryStream stm)在System.AppDomain.Serialize(对象o)在System.AppDomain.MarshalObject(对象o)
如果它每天被抛出并捕获一次,我会很好,但这是一个很大的问题-我在服务器上的应用程序错误日志中得到了这一点,它使整个过程崩溃-站点停机并重新启动。
有没有其他人遇到过这种情况?我明显做错了什么吗?
发布于 2010-12-26 14:46:22
看起来服务器正在尝试序列化一个DotNetOpenAuth.Messaging.ProtocolException,它(当前)不支持序列化。然而,这表明在此之前有一个问题没有报告,因为在报告问题时我们遇到了另一个问题。如果你有导致这个错误的日志,它可能会帮助你发现这个主要问题是什么。
为了避免第二个问题,您应该在http://dotnetopenauth.uservoice.com/上请求支持ProtocolException的序列化。这些请求是认真考虑的,所以如果你想解决这个问题,请考虑将其归档。
至于为什么它会导致整个过程中断--我的猜测和上面一样,这是在报告问题时出现的问题,也许主机(可能是ASP.NET)还没有准备好处理这个问题。
https://stackoverflow.com/questions/4497980
复制相似问题