从C#到Apache Tika 1.14服务器 - 使用Multipart进行大型文件的错误500> 40 MB

时间:2017-06-21 12:04:27

标签: c# apache multipartform-data apache-tika server-error

我的要求是:我有.NET dll,它将接受文件名。 .NET dll将调用tika服务器,并将文件作为流传递,并且应该返回元数据,并且将使用所需格式(Json to string)完成自定义解析。 Tika服务器正在运行,我通过打开http://localhost:9998网址验证它是否正在运行。 对于所有类型的文件高达40 MB(从我测试过的文件类型)它工作正常。当我尝试传递大小为42 MB的文件(TIF)时,我从Tika服务器收到以下错误。

  • 消息{StatusCode:500,ReasonPhrase:'服务器错误',版本:1.1,内容:System.Net.Http.StreamContent,标头: { 连接:关闭 服务器:Jetty(8.y.z-SNAPSHOT) System.Net.Http.HttpResponseMessage

    ReasonPhrase    "Server Error"
    
  • RequestMessage {方法:POST,RequestUri:' http://localhost:9998/meta/form',版本:1.1,内容:System.Net.Http.MultipartFormDataContent,标题: { 接受:application / json 内容类型:multipart / form-data;边界=" a9e2fe05-bf74-42d1-b9d1-b312ea0e6af5" 内容长度:51847981 System.Net.Http.HttpRequestMessage

以下是我使用的代码

    private string ExtractMetadata(string fileName)
    {    
        const string RequestUri = "meta/form";
        const string JSONType = "application/json";
        var file = File.ReadAllBytes(fileName);
        using (var client = new HttpClient())
        {
            client.BaseAddress = new Uri(Url);
            client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue(JSONType));
            using (var content = new MultipartFormDataContent())
            {
                content.Add(new StreamContent(new MemoryStream(file)));
                using (var message = client.PostAsync(RequestUri, content).Result)
                {
                    return message.Content.ReadAsStringAsync().Result;
                }
            }
        }
     }

从Google搜索点到Tika文档的所有链接,但没有提供有关使用更大文件的问题或如何使用多部分的任何示例。在这里,我使用了multipart,它适用于较小尺寸的文件。仅对于较大的文件,我收到上述错误。 非常感谢任何帮助。

0 个答案:

没有答案