.net 带有JSON的CURL语句产生服务器错误 --更新为堆栈跟踪错误--

.net 带有JSON的CURL语句产生服务器错误 --更新为堆栈跟踪错误--,.net,json,curl,stack-trace,.net,Json,Curl,Stack Trace,我正在努力使以下代码正确处理: curl -v -u SD4FWFCF-ASD2-32FD-AF34-F34A4FA4CA34:CO0I0MM0-2349-OIJC-3409-234F098JJ3F4 -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"email":"john.doe@example.com","amountPaid":19.99,"systemName":"test-p

我正在努力使以下代码正确处理:

curl -v -u SD4FWFCF-ASD2-32FD-AF34-F34A4FA4CA34:CO0I0MM0-2349-OIJC-3409-234F098JJ3F4 -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"email":"john.doe@example.com","amountPaid":19.99,"systemName":"test-purchase","recipientPhoneNumber":"5558884321","senderPhoneNumber":"8005551234","deliveryDate":null,"paymentType":5,"scriptValues":[{"key":"fname","value":"john"},{"key":"lname","value":"doe"},{"key":"width","value":"medium"},{"key":"length","value":"large"},{"key":"city","value":"Fairbanks"},{"key":"state","value":"alaska"}]}' -k "https://api.example.com/processorder" -o output.html
每次运行此操作时,我都会收到一个
500内部服务器错误

下面是该错误的一个示例:

“/”应用程序中出现服务器错误

序列不包含任何元素

描述:在执行过程中发生未处理的异常 当前的web请求。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源

异常详细信息:System.InvalidOperationException:序列包含 无元素

源错误:

在执行过程中生成了未处理的异常 当前web请求。关于货物来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常

堆栈跟踪:

[无效操作异常:序列不包含元素]
System.Linq.Enumerable.Single(IEnumerable
1源代码)+371
System.Linq.Queryable.Single(IQueryable
1源代码,表达式
1
谓词)+590
例如.Web.Areas.Api.Controllers.ApiController.ProcessOrder(JsonProcessOrder 模型)在 C:\Example.Web\Areas\Api\Controllers\ApiController.cs:1221
lambda_方法(闭包、控制器基、对象[])+127
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary
2个参数)+248
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor ActionDescriptor,IDictionary
2
参数)+39
System.Web.Mvc.c__显示类15.b__12() +125 System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter 过滤器,ActionExecutingContext预文本,Func
1 continuation)+640
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext,IList
1过滤器,ActionDescriptor ActionDescriptor,
IDictionary
2个参数)+312
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,字符串actionName)+691
System.Web.Mvc.Controller.ExecuteCore()+162
System.Web.Mvc.ControllerBase.Execute(RequestContext-RequestContext) +305 C:\Example.Web\DataController.cs中的Example.Web.DataController.Execute(RequestContext RequestContext)命令:180
System.Web.Mvc.c_DisplayClassb.b_5()+62
System.Web.Mvc.Async.c_DisplayClass1.b_0()+20
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +469 System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)+375

版本信息:Microsoft.NET Framework版本:4.0.3; ASP.NET版本:4.0.3


我试图改变json,但我一辈子都想不出来。

如果不了解更多的方法,就无法回答这个问题。正如@Abe-meisler所说,可能有一个对空序列的调用。

您能告诉我们引发该错误的代码吗?听起来它在期待某种类型的集合,但没有找到。我们可以查看
ProcessOrder
方法的代码吗?不幸的是,没有。这些方法已关闭。这是我能提供给你的全部。我不能告诉你太多。该方法中似乎有东西试图在空序列上调用
Single
,但没有看到代码,这是任何人的猜测。您是否可能遗漏了一个必需的参数?也许在
scriptValues
中?是的,我就是这么想的。哦,好吧。无论如何,谢谢你的帮助。