ASP.Net Web Api无法绑定多个参数

时间:2018-09-12 05:44:50

标签: exception dependency-injection asp.net-web-api2 model-binding

我在ApiController中有以下方法

    [HttpPost, Route("addPerson")]
    public HttpResponseMessage Add(HttpRequestMessage request, Person person)
    {           
        var response = request.CreateResponse(HttpStatusCode.OK);
        response.Content = new StringContent("test " + person.Name, Encoding.UTF8, "application/json");

        return response;
    }

    public class Person {
        public string Name { get; set; }
    }

当我在PC上调试它时,它工作正常……第一个参数由框架注入,第二个参数绑定到我发布的JSON对象。

但是,当我发布它并在服务器上运行它时,出现以下错误

  

“消息”:“发生错误。”,       “ exceptionMessage”:“无法将多个参数('request'和'person')绑定到请求的内容。”,       “ exceptionType”:“ System.InvalidOperationException”,       “ stackTrace”:“位于System.Web.Http.Controllers.HttpActionBinding.ExecuteBindingAsync(HttpActionContext actionContext,CancellationToken cancelleToken)\ r \ n在System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext()\ r \ n-- -从之前引发异常的位置开始的堆栈结束跟踪--- \ r \ n在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\ r \ n在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\ r \ n在System.Web.Http.Controllers.ExceptionFilterResult.d__6.MoveNext()\ r \ n ---从上一个引发异常的位置开始的堆栈结束跟踪--- \ r \ n在System.Runtime.ExceptionServices System.Web.Http.Controllers.ExceptionFilterResult.d__6.MoveNext()\ r \ n中的.ExceptionDispatchInfo.Throw()\ r \ n-从上一个引发异常的位置开始的堆栈结束跟踪--- \ r \ n在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\ r \ n在System.Runtime.CompilerServices.TaskAwaiter.HandleNo nSuccessAndDebuggerNotification(任务任务)\ r \ n位于System.Web.Http.Dispatcher.HttpControllerDispatcher.d__15.MoveNext()“

我的计算机(Win 10 Pro)和服务器(Windows Server 2016 Datacenter)均运行.Net Framework 4.7.1

我真正想要实现的是使用GraphQL,就像您在github_example的第44行中看到的那样。它们执行相同的操作...此示例在我的PC上工作正常,但在服务器上不起作用

您知道什么地方可能出问题吗?

0 个答案:

没有答案