C# .NET多部分数据出现在序言部分

C# .NET多部分数据出现在序言部分,c#,.net,multipartform-data,dotnet-httpclient,C#,.net,Multipartform Data,Dotnet Httpclient,客户端使用MultipartFormDataContent和两部分数据,一部分是文件,另一部分是一些元数据。 在每3个请求中,将有2个请求因FileData为空而失败 客户: var client = new HttpClient(new WebRequestHandler()); using (var content = new MultipartFormDataContent()) { var guid = Guid.NewGuid().ToString(); var tmp

客户端使用MultipartFormDataContent和两部分数据,一部分是文件,另一部分是一些元数据。 在每3个请求中,将有2个请求因FileData为空而失败

客户:

var client = new HttpClient(new WebRequestHandler());
using (var content = new MultipartFormDataContent())
{
    var guid = Guid.NewGuid().ToString();
    var tmpFileName = string.Format("{0}{1}", guid, Path.GetExtension(fileName));
    var dataContent = new ByteArrayContent(data);
    content.Add(dataContent, guid, tmpFileName);
    var optionContent = new ByteArrayContent(optionData);
    optionContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("parameter") { Name = "optionsStr" };
    content.Add(optionContent);
    var response = client.PostAsync("http://test.com", content).Result;
}
服务器:

[HttpPost]
public async Task<HttpResponseMessage> UploadDocument(string dataStr)
{
    string rootPath = System.Web.HttpContext.Current.Server.MapPath("~/App_Data/Documents");
    MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(rootPath);
    await Request.Content.ReadAsMultipartAsync(provider);
    if (provider.FileData == null || provider.FileData.Count == 0)
        throw new Exception("There is no file in the current request of httpcontext.");
}
[HttpPost]
公共异步任务上载文档(字符串dataStr)
{
字符串rootPath=System.Web.HttpContext.Current.Server.MapPath(“~/App_Data/Documents”);
MultipartFormDataStreamProvider提供程序=新的MultipartFormDataStreamProvider(根路径);
wait Request.Content.ReadAsMultipartAsync(提供程序);
if(provider.FileData==null | | provider.FileData.Count==0)
抛出新异常(“httpcontext的当前请求中没有文件。”);
}
在使用Wiresharks进行嗅探后,发现实际文件数据在多部分结构的序言部分被错误放置:

错误请求:

正确的请求:

有什么线索可能导致这种行为吗