C# 将映像作为字节发送到Windows应用程序中的web服务

C# 将映像作为字节发送到Windows应用程序中的web服务,c#,web-services,uwp,C#,Web Services,Uwp,我正在开发UWP应用程序,因为我需要上传图像,我正在打电话给网络服务发布详细信息。我使用下面的代码来序列化图像 byte[] fileBytes = null; using (var stream = await file.OpenReadAsync()) { fileBytes = new byte[stream.Size]; using (var r

我正在开发UWP应用程序,因为我需要上传图像,我正在打电话给网络服务发布详细信息。我使用下面的代码来序列化图像

                byte[] fileBytes = null;
            using (var stream = await file.OpenReadAsync())
            {
                fileBytes = new byte[stream.Size];
                using (var reader = new DataReader(stream))
                {
                    await reader.LoadAsync((uint)stream.Size);
                    reader.ReadBytes(fileBytes);
                }
            }
            docs.Document = fileBytes;
            docs.DocumentName = file.Name;
            docs.DocumentTypeOtherDescription = "ProfilePicture";
            var docsAsJson = JsonConvert.SerializeObject(docs);
            StringContent stringContent = new StringContent(docsAsJson, System.Text.Encoding.UTF8);
            ByteArrayContent byteContent = new ByteArrayContent(fileBytes);
            MultipartFormDataContent httpContent = new MultipartFormDataContent();
            httpContent.Add(byteContent, file.Name);
            httpContent.Add(stringContent);            
            using (var httpClient = new HttpClient())
            {
                var request = new HttpRequestMessage {Method = HttpMethod.Post};
                request.Headers.Add("authorization", App.TokenType + " " + App.AccessToken);
                request.RequestUri = new Uri(App.BaseUrl + "api/User/UploadUserDocument");
                request.Content = httpContent;

                request.Content.Headers.Add(@"Content-Length", fileBytes.Length.ToString());
                var response = httpClient.SendAsync(request).Result;
                var data = response.Content.ReadAsStringAsync();
                if (response.IsSuccessStatusCode)
                {

                }
            }
这是我序列化映像的地方,在服务端,它们反序列化映像并保存在数据库中。但是我得到的状态码是:500,原因短语是:'内部服务器错误'这个错误,任何人请帮我解决这个问题。 这是我的服务代码:

       public IHttpActionResult UpdateUserWithProfilePic(FormData userviewmodel)
    {
        var error = string.Empty;
        var userJson = new StringBuilder();
        foreach (var items in userviewmodel.Fields)
        {
            if (items.Name == "}")
            {
                if (!userJson.ToString().EndsWith(",")) continue;
                userJson.Remove(userJson.Length - 1, 1);
                userJson.Append("}");
            }
            else
                userJson.Append((items.Name.Replace("%22", "\"")) + ":" + items.Value);
        }
        var userView = JsonConvert.DeserializeObject<UserViewModel>(userJson.ToString());
        var result = UpdateUser(userView, error);
        if (result.ResultType != ResultType.Success) return daHttpActionResult(result.Result, result);
        if (userviewmodel.Files != null && userviewmodel.Files.Count > 0)
        {
            userView.ProfileDocument = new UserDocument
            {
                DocumentName = userviewmodel.Files[0].Name,
                Document = userviewmodel.Files[0].Value.Buffer,
                UserID = UserId,
                DocumentType = DocumentTypeEnum.ProfilePicture,
                DocumentTypeOtherDescription = userviewmodel.Files[0].Value.MediaType,
            };
        }
        return AdHttpActionResult(result.Result, result);
    }
public IHttpActionResult UpdateUserWithProfilePic(FormData用户视图模型)
{
var error=string.Empty;
var userJson=new StringBuilder();
foreach(userviewmodel.Fields中的var项)
{
如果(items.Name==“}”)
{
如果(!userJson.ToString().EndsWith(“,”)继续;
Remove(userJson.Length-1,1);
userJson.Append(“}”);
}
其他的
userJson.Append((items.Name.Replace(“%22”,“\”)+”:“+items.Value);
}
var userView=JsonConvert.DeserializeObject(userJson.ToString());
var result=UpdateUser(用户视图,错误);
如果(result.ResultType!=ResultType.Success)返回DahtPactionResult(result.result,result);
if(userviewmodel.Files!=null&&userviewmodel.Files.Count>0)
{
userView.ProfileDocument=新的UserDocument
{
DocumentName=userviewmodel.Files[0]。名称,
Document=userviewmodel.Files[0].Value.Buffer,
UserID=UserID,
DocumentType=DocumentTypeEnum.ProfilePicture,
DocumentTypeOtherDescription=userviewmodel.Files[0].Value.MediaType,
};
}
返回AdhtPactionResult(result.result,result);
}
谢谢和问候,
Cristina

我们也需要服务器端代码。最好在web服务器中部署一些服务来接受此类文件。感谢您的回复@RomanoZumbé,用服务代码更新了问题