0

我在后台线程上运行 DotNetOpenAuth,定期调用 OAuth 授权的 Google。

大约每天一次,大约是万分之一的电话,我得到以下异常:

发生未处理的异常,进程终止。应用程序 ID:DefaultDomain 进程 ID:3316 异常:System.NotImplementedException 消息:方法或操作未实现。StackTrace:在 DotNetOpenAuth.Messaging.ProtocolException.GetObjectData(SerializationInfo info, StreamingContext context) 在 c:\Users\andarno\git\dotnetopenid\src\DotNetOpenAuth\Messaging\ProtocolException.cs: System.Runtime.Serialization.Formatters 的第 90 行。 Binary.WriteObjectInfo.InitSerialize(对象 obj,ISurrogateSelector surrogateSelector,StreamingContext 上下文,SerObjectInfoInit serObjectInfoInit,IFormatterConverter 转换器,ObjectWriter objectWriter,SerializationBinder binder)在 System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(对象 obj,ISurrogateSelector surrogateSelector,StreamingContext 上下文,

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

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

4

1 回答 1

1

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

您应该在http://dotnetopenauth.uservoice.com/上请求支持 ProtocolException 的序列化以避免第二个问题。这些请求被认真考虑,所以如果你想解决这个问题,请考虑提交。

至于为什么它会降低整个过程 - 我的猜测如上所述,这是在报告问题时出现的问题,也许主机(大概是 ASP.NET)没有准备好处理这个问题。

于 2010-12-26T06:46:21.850 回答