Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# POST方法在部署时始终接收NULL_C#_Rest_Post_Asp.net Web Api - Fatal编程技术网

C# POST方法在部署时始终接收NULL

C# POST方法在部署时始终接收NULL,c#,rest,post,asp.net-web-api,C#,Rest,Post,Asp.net Web Api,我们的方法在dev环境中运行良好,但部署时它接收的参数始终为null。我正在用Postman&SoapUI进行测试,结果是一样的 例如: [HttpPost] [Route("api/mycontroller/trytypedpostfrombody/")] public HttpResponseMessage TryTypedPostFromBody([FromBody]MyClass req) { return Request.CreateRe

我们的方法在dev环境中运行良好,但部署时它接收的参数始终为null。我正在用Postman&SoapUI进行测试,结果是一样的

例如:

    [HttpPost]
    [Route("api/mycontroller/trytypedpostfrombody/")]
    public HttpResponseMessage TryTypedPostFromBody([FromBody]MyClass req)
    {
        return Request.CreateResponse($"You have sent with typed POST from body: {(req != null ? JsonConvert.SerializeObject(req) : "<null>")}");
    }
[HttpPost]
[路由(“api/mycontroller/trytypedpostfrombody/”)
公共HttpResponseMessage TryTypedPostFromBody([FromBody]MyClass请求)
{
return Request.CreateResponse($”您已从正文发送了类型化的POST:{(req!=null?JsonConvert.SerializeObject(req):“”)});
}
当然,邮递员发送
内容类型:application/json
,请求是通过body发送的
MyClass
的json表示

在dev环境(localhost)上,它工作得很好,但是当我们部署到客户端托管时,服务总是返回,就好像agment是
NULL
(即,我只是将postman切换到另一个URL,它返回NULL而不是接收到的内容)。请注意,方法确实会被调用,只是参数不能在网络中“生存”。如果我尝试使用
[FromUri]
传递类似的参数,它就可以正常工作

我很感激任何关于检查内容的想法,因为我已经没有了。。。(除了将所有方法从
POST
切换到
GET
/facepalm/)

编辑

我已经推断出这与投递或获取无关,只是身体被切断了。因此,在此期间,我们必须更改所有帖子,以接受内容
[FromUri]
,直到我们解决这个问题。此外,中间有一个数据电源设备,但他们说,即使它们直接通过,而不是通过DP暴露的URL(这是奇怪的,我发誓这是数据电源配置问题)

,它们也有相同的响应。您确定它的行为就像req为null,而不是通过SerializeObject返回null吗?我有时会遇到这个问题,因为我发送的数据不是MyClass类型(在您的情况下)。您可能在创建数据对象时丢失了某些内容。您的完整本地URL是什么?您的完整客户端托管URL是什么?是否有路由在客户端托管上工作?@StackingForHeap no,
SerializeObject
仅在不为null时调用@Rakesh它在针对本地主机时工作得很好,所以我怀疑这是真的@mjwills所有路由都正常工作-方法被执行,但它们通过body接收的值为null-通过Uri接收的其他请求(例如get)正常工作。您是否有可能使用(enctype=xxxx)设置(表单)中的数据类型?这是否在(一个)客户机以外的其他服务器上进行过测试,可能服务器端发生了一些奇怪的事情?只是为了确保,您是否确定它的行为类似于req为null,而不是通过SerializeObject返回null?我有时会遇到这个问题,因为我发送的数据不是MyClass类型(在您的情况下)。您可能在创建数据对象时丢失了某些内容。您的完整本地URL是什么?您的完整客户端托管URL是什么?是否有路由在客户端托管上工作?@StackingForHeap no,
SerializeObject
仅在不为null时调用@Rakesh它在针对本地主机时工作得很好,所以我怀疑这是真的@mjwills所有路由都正常工作-方法被执行,但它们通过body接收的值为null-通过Uri接收的其他请求(例如get)正常工作。您是否有可能使用(enctype=xxxx)设置(表单)中的数据类型?除了(一个)客户端的服务器之外,这是否已经在其他服务器上进行过测试,也许服务器端发生了一些奇怪的事情?