我有一个 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
。有人能提示我如何找到此错误的原因吗?控制器之前一直工作,没有任何改变。
一般错误消息
“请求无法完成。(内部服务器错误)”字符串
Response
{StatusCode:500,ReasonPhrase:“内部服务器错误”,版本:1.1,内容:System.Net.Http.StreamContent,标头:
{
服务器:微软-IIS/8.0
日期:2016 年 9 月 30 日星期五 17:37:57 GMT
X-Powered-By: ASP.NET
内容长度:36
内容类型:application/json;字符集=utf-8
System.Net.Http.HttpResponseMessage
stack
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.MoveNext()\r\n--- 结束来自先前引发异常的位置的堆栈跟踪 ---\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.TaskAwaiter.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.MobileServices.MobileServiceClient.d__63 2.MoveNext()\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()" 字符串
解决方案建议
正在 stackoverflow 上搜索 Sid。并发现了2年前的问题。Web API 转换为 Azure 移动服务,未序列化所有属性
明天我会尝试这个。