将Protobuf消息发送到Web API失败

use*_*393 5 c# http protocol-buffers protobuf-net asp.net-web-api2

我正在使用Microsoft Web API 2和Protobuf-net来序列化我的数据.一切都运行得很好,除非我想将二进制数据发送到Web API控制器.我最终得到500错误.

这是目前可行还是仅限于序列化?为了验证我的响应是否正确,我使用了ProtobufJS并对其进行了正确解码.为了查明我的问题,我将其排除在外,并在收到后直接发送了我的回复.任何帮助设置将不胜感激.

Web API控制器

public class UserController : ApiController
{
    // GET api/<controller>
    public User Get()
    {
        var user = new User{ Id = "ABC1", FirstName = "John", LastName = "Doe" };
        return user;
    }

    // GET api/user/
    public void Post(User user)
    {
        var type = "POST";
    }
}
Run Code Online (Sandbox Code Playgroud)

模型

[ProtoContract]
public class User
{

    [ProtoMember(1)]
    public string Id { get; set; }

    [ProtoMember(2)]
    public string FirstName { get; set; }

    [ProtoMember(3)]
    public string LastName { get; set; }
}  
Run Code Online (Sandbox Code Playgroud)

使用Javascript

<script>

    var get = new XMLHttpRequest();
    get.open("GET", "api/user", true);
    get.responseType = "arraybuffer";
    get.setRequestHeader("Accept", "application/x-protobuf");

    get.onload = function (event) {

        var arrayBuffer = get.response;

        var post = new XMLHttpRequest();
        post.open("POST", "api/user", true);
        post.setRequestHeader("Accept", "application/x-protobuf");
        post.overrideMimeType("application/x-protobuf");

        post.send(arrayBuffer);

    }

    get.send(null);

</script>
Run Code Online (Sandbox Code Playgroud)