Внутренняя ошибка сервера - пользовательский контроллер службы приложений Azure

У меня есть служба мобильных приложений Azure (не старая мобильная служба) с несколькими настраиваемыми контроллерами, и процесс работает отлично.

Сегодня произошла ошибка Internal Server Error,

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

Я делаю серверный вызов, как:

DTO.UserDTO uploadImage = await ((App)Application.Current).MobileService.InvokeApiAsync<DTO.UsernameCheckDto, DTO.UserDTO>("user/blobStorageRetrieval", new DTO.UsernameCheckDto() { Username = ((App)Application.Current).InGameUserName }, System.Net.Http.HttpMethod.Post, null);

Пользовательский контроллер заканчивается:

return Ok(new UserDTO()
{
    MicrosoftId = stable_sid,
    Username = stable_users.Username,
    playerNames = playerNames,
    playerScores = playerInts,
    isCreated = true,
    bestScore = stable_users.bestRunnerScore,
    statsInformation = _statsInformation,
});

Я проверил, что все переменные инициализированы. Тип UserDTO ссылается из того же Portable Library, Кто-нибудь может намекнуть, как я могу найти причину этой ошибки? Контроллер работал раньше без каких-либо изменений.

Общее сообщение об ошибке

Строка "Запрос не может быть выполнен. (Внутренняя ошибка сервера)"

отклик

{StatusCode: 500, ReasonPhrase: "Внутренняя ошибка сервера", Версия: 1.1, Содержимое: System.Net.Http.StreamContent, Заголовки: {Сервер: Microsoft-IIS/8.0 Дата: Пт, 30 сентября 2016 г. 17:37:57 GMT X-Powered-By: ASP.NET Content-Length: 36 Content-Type: application/json; charset=utf-8 }} System.Net.Http.HttpResponseMessage

стек

StackTrace "в Microsoft.WindowsAzure.MobileServices.MobileServiceHttpClient.d__24.MoveNext()\r\n--- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(задача-задача) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(задача-задача) \ r \ n в Microsoft.WindowsAzure.MobileServices.MobileServiceHttpClient.d__26.Rove.Nove трассировка стека из предыдущего места, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(задача задачи) \ r \ n в Microsoft.WindowsAzure.MobileServices.MobileServiceHttpClient.d__18.MoveNext()\r\n--- Конец трассировки стека из предыдущего расположения, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Задача) \ r \ n в System.Runtime.CompilerServices.TaskAwa iter.HandleNonSuccessAndDebuggerNotification (Задача) \ r \ n в Microsoft.WindowsAzure.MobileServices.MobileServiceClient.d__69.MoveNext()\r\n--- Конец трассировки стека из предыдущего местоположения, в котором было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(задача-задача) \ r \ n в Microsoft.WindowsAzure.MeserService.MobileServices) \ r \ n --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача задачи) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(задача задачи) \ r \ n в System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n в Stonegaard_endless_runner.MainPage.d__7.MoveNext()"

предложение по решению

Поиск в Sid, о переполнении стека. И нашел проблему с 2 года назад. Веб-API, преобразованный в мобильную службу Azure, не сериализует все свойства

Я попробую это завтра.

1 ответ

Решение

Решение было добавить:

httpConfig.Formatters.JsonFormatter.SerializerSettings.DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Include;
httpConfig.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Include;

в Startup.MobileApp.cs в методе ConfigureMobileApp,

Другие вопросы по тегам