DotNetOpenAuth偶尔会抛出NotImplementedException

时间:2010-12-21 09:52:33

标签: dotnetopenauth notimplementedexception

我在后台线程上运行DotNetOpenAuth,定期通过OAuth授权Google。

大约每天一次,即10,000次通话中的一次,我得到以下例外:

发生了未处理的异常,并且该过程已终止。应用程序ID:DefaultDomain进程ID:3316异常:System.NotImplementedException消息:未实现方法或操作。 StackTrace:位于System.Runtime.Serialization.Formatters的c:\ Users \ andarno \ git \ dotnetopenid \ src \ DotNetOpenAuth \ Messaging \ ProtocolException.cs:第90行中的DotNetOpenAuth.Messaging.ProtocolException.GetObjectData(SerializationInfo info,StreamingContext context)。 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj,ISurrogateSelector surrogateSelector,StreamingContext context)中的Binary.WriteObjectInfo.InitSerialize(Object obj,ISurrogateSelector surrogateSelector,StreamingContext context,SerObjectInfoInit serObjectInfoInit,IFormatterConverter converter,ObjectWriter objectWriter,SerializationBinder binder) System.Sruntime.Serialization.Formatters上的System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph,Header [] inHeaders,__BinaryWriter serWriter,Boolean fCheck)中的SerObjectInfoInit serObjectInfoInit,IFormatterConverter转换器,ObjectWriter objectWriter,SerializationBinder binder) .Binary.BinaryFormatter.Serialize(STRE am serializationStream,Object graph,Header [] headers,Boolean fCheck)System.AppDomain.MarshalObject(System.AppDomain.MarshalObject)上System.AppDomain.Serialize(Object o)的System.Runtime.Remoting.Channels.CrossAppDomainSerializer.SerializeObject(Object obj,MemoryStream stm)对象o)

如果它被抛出并且每天捕获一次我会很好,但这是一个很大的问题 - 我在服务器上的应用程序错误日志中得到了这个,并且它完全崩溃了整个过程 - 网站崩溃了并重新启动。

有没有其他人遇到这个?我明显做错了什么?

1 个答案:

答案 0 :(得分:1)

看起来服务器正在尝试序列化DotNetOpenAuth.Messaging.ProtocolException,它不(当前)支持序列化。但是,这表明在此之前存在一个未报告的问题,因为在报告问题时我们遇到了另一个问题。如果您有导致此错误的日志,则可能有助于您发现此主要问题是什么。

支持ProtocolException的序列化以避免出现第二个问题,您应该在http://dotnetopenauth.uservoice.com/上请求。这些请求被认真考虑,因此如果您想要修复此请求,请考虑提交。

至于它为什么会打倒整个过程 - 我的猜测如上所述,在报告问题时这是一个问题,也许主机(可能是ASP.NET)不准备处理这个问题。 / p>