Внутренняя ошибка сервера - пользовательский контроллер службы приложений 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
,