c# - 生产服务器上的 NullReferenceException
问题描述
我创建了一个版本为 2.1 的 .NET Core WebAPI。现在,在外部测试服务器上的所有测试成功完成后,我将软件转移到了生产服务器。服务器的配置相同,都使用 Ubuntu 18.04.03。只有框架的版本不同,在生产服务器上运行 2.1.15,在测试服务器上运行 2.1.12。
以下代码在本地开发机器和外部测试服务器上工作,但在外部生产服务器上崩溃。
[HttpPost]
[Authorize]
public IActionResult Post([FromBody] PetItem pet)
{
var user = User.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Name);
int userID = Convert.ToInt16(user.Value);
pet.CreatorID= userID; //System.NullReferenceException
var returnPet = _petDataHandler.createNewPet(pet);
return Created(returnPet.PetID.ToString(), returnPet;
}
日志:
fail: Microsoft.AspNetCore.Server.Kestrel[13]
Connection id "0HLTOVB6C8I6O", Request id "0HLTOVB6C8I6O:00000003": An unhandled exception was thrown by the application.
System.NullReferenceException: Object reference not set to an instance of an object.
at server.Pets.Controllers.PetController.Post(PetItem pet) in D:\...\server\Pet\Controllers\PetController.cs:line 75
at lambda_method(Closure , Object , Object[] )
at Microsoft.Extensions.Internal.ObjectMethodExecutor.Execute(Object target, Object[] parameters)
at Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync()
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync()
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync()
at Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
我的错误是什么,知道任何人都可以解决这个问题。
解决方案
推荐阅读
- php - 幻灯片 jquery 在加载时显示所有图像
- java - 在清空树并返回节点的同时遍历树
- linux - 基于匹配两个第一列使用 awk 组合文件,然后输出第一个文件的文本和第二个文件的第三列
- php - MySQL PHP 在医生可用性范围内查找时间段
- bash - Bash 获取使用 head 命令提取的文件列表的大小
- python - 在python中使用线程(多处理)时传递变量
- angular - 如何在http get中传递查询参数
- java - snapshot.getvalue(double.class) 的拆箱可能会产生空指针异常
- css - 如何使图像高度超过容器的高度,以使图像与其他元素/组件重叠?
- javascript - 如何在反应原生地图中拖动我当前的位置标记?