DotNetOpenAuth иногда создает исключение NotImplementedException - PullRequest
0 голосов
/ 21 декабря 2010

У меня DotNetOpenAuth работает в фоновом потоке, регулярно звонит в Google, авторизованный с помощью OAuth.

Примерно один раз в день, что составляет примерно один из 10000 звонков, я получаю следующее исключение:

Произошло необработанное исключение, и процесс был остановлен. Идентификатор приложения: DefaultDomain ID процесса: 3316 Исключение: System.NotImplementedException Сообщение: метод или операция не реализована. StackTrace: в DotNetOpenAuth.Messaging.ProtocolException.GetObjectData (информация SerializationInfo, контекст StreamingContext) в каталоге c: \ Users \ andarno \ git \ dotnetopenid \ src \ DotNetOpenAuth \ Messaging \ ProtocolException.cs: строка 90 в System.RuntimeForters. Binary.WriteObjectInfo.InitSerialize (Object obj, ISurrogateSelector surrogateSelector, контекст StreamingContext, SerObjectInfoInit serObjectInfoInit, преобразователь IFormatterConverter, объектWWerer объекта ObjectWriter, связывание SerializationBinder) в System.Runtime. , SerObjectInfoInit serObjectInfoInit, конвертер IFormatterConverter, объект ObjectWriter, связыватель объекта (SerializationBinder) в System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize (граф объектов, заголовок [] inHeaders, __BinaryWriter serWerialSunterServerServerShinterChisterSerterSunterSunter) .Binary.BinaryFormatter.Serialize (Stre serializationStream, Граф объекта, Заголовки Header [], логическое значение fCheck) в System.Runtime.Remoting.Channels.CrossAppDomainSerializer.SerializeObject (Объект obj, MemoryStream stm) в System.AppDomain.Serialize (Object o) в System.AppDomain.MarshalObject ( Объект о)

Если бы его бросали и ловили один раз в день, у меня все было бы в порядке, но это большая проблема - я получаю это в журнале ошибок приложений на сервере, и он полностью сбивает процесс - сайт отключается и перезапускается.

Кто-нибудь еще сталкивался с этим? Что-то я явно не так делаю?

1 Ответ

1 голос
/ 26 декабря 2010

Похоже, что сервер пытается сериализовать DotNetOpenAuth.Messaging.ProtocolException, который (в настоящее время) не поддерживает сериализацию.Однако это говорит о том, что существует проблема до этого, о которой не сообщается, потому что при сообщении о проблеме мы сталкиваемся с другой.Если у вас есть журналы, приводящие к этой ошибке, это может помочь вам раскрыть, какова эта ведущая проблема.

Поддержка сериализации ProtocolException, чтобы избежать этой второй проблемы, - это то, что вы должны запросить на http://dotnetopenauth.uservoice.com/. Эти запросысчитаются серьезными, поэтому, пожалуйста, рассмотрите возможность подачи заявки, если вы хотите, чтобы это было исправлено.

Что касается причин, по которым он останавливает весь процесс - я думаю, как и выше, что это проблема при сообщении о проблеме, и, возможно,хост (предположительно ASP.NET) не готов с этим справиться.

...