2012-02-13 6 views
2

В настоящее время я использую openRasta для создания Rest Api. Я наблюдаю странное поведение при отправке запросов Ajax. Иногда запрос выполняется успешно, когда-то он терпит неудачу и дает следующее исключение.Проблема с сериализацией данных Openrasta

{Exception: 
System.Runtime.Serialization.SerializationException: Expecting element 'root' from namespace ''.. Encountered 'None' with name '', namespace ''. 
    at System.Runtime.Serialization.Json.DataContractJsonSerializer.InternalReadObject(XmlReaderDelegator xmlReader, Boolean verifyObjectName) 
    at System.Runtime.Serialization.XmlObjectSerializer.InternalReadObject(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver) 
    at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver) 
    at System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject(XmlDictionaryReader reader) 
    at System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject(Stream stream) 
    at OpenRasta.Codecs.JsonDataContractCodec.ReadFrom(IHttpEntity request, IType destinationType, String paramName) 
    at OpenRasta.OperationModel.Hydrators.RequestEntityReaderHydrator.TryReadPayloadAsObject(IHttpEntity requestEntity, IMediaTypeReader reader, IOperation operation)} 

Одна вещь, которую я заметил, что когда я держать браузер на холостом ходу в течение некоторого времени сказать больше, чем 10 минут я могу увидеть запрос в поджигатель, но он показывает статус в ожидании в течение длительного времени, и, когда она попадает сервер дает выше исключения. Но то же самое работает отлично иногда.

Может кто-нибудь объяснить мне такое поведение? Если хотите, я могу предоставить дополнительный код, связанный с ним.

ответ

2

Задержка может быть вызвана тем, что asp.net необходимо перезагрузить, когда вы, наконец, выходите из режима ожидания, что занимает немного времени.

Что касается ошибки, похоже, что сериализатор данных json данных не может разобрать запрос. Я бы посоветовал проверить пару вещей, и если он не сможет опубликовать здесь подробные данные, чтобы мы могли помочь вам дальше.

  1. То, что тело действительно правильно в то время ошибка triggererd (с стелькой)
  2. что вы не имеете некоторые проблемы asp.net конкретные, которые предотвратили бы запрос от правильно прибывающего аспида. net protocol, например проверка подлинности на основе файлов cookie или управление сеансом
  3. Чтобы запрос не был перехвачен никаким http-модулем (анти-поддельные жетоны и т. д.).

Предоставьте свои сопоставления, сущности и копию журнала OR (который вы можете получить, добавив отладчик к серверному процессу), и мы постараемся помочь вам дальше.

+0

Я могу воспроизвести эту проблему, когда я запускаю ее через визуальную студию и отлаживаю ее. Но когда я отправляю такой же запрос с помощью Rest Client, он работает хорошо. – prashant

Смежные вопросы