C# TextReader Read和ReadToEnd挂起而不引发异常

C# TextReader Read和ReadToEnd挂起而不引发异常,c#,ifilter,C#,Ifilter,有没有办法知道对TextReader.Read或TextReader.ReadToEnd调用的调用将挂起,而不会在我调用之前抛出exeption try { using (var filterReader = new EPocalipse.IFilter.FilterReader(tempFileName)) { mediaContent = filterReader.ReadToEnd(); } } catch (Exception e) { Log.Error("DealerP

有没有办法知道对TextReader.Read或TextReader.ReadToEnd调用的调用将挂起,而不会在我调用之前抛出exeption


try
{
 using (var filterReader = new EPocalipse.IFilter.FilterReader(tempFileName))
 {
  mediaContent = filterReader.ReadToEnd();
 }
}
catch (Exception e)
{
 Log.Error("DealerPortalIndex Error on file: " + tempFileName, e, this);
 mediaContent = string.Empty;
}
filterReader.ReadToEnd()挂起并且从不在某个.xls文件(可能是更多文件)上引发异常

我还尝试使用filterReader.Read(char{},int,int)来读取块,并遇到同样的问题。

(您在代码中说的是textreader,但示例使用的是EPocalips IFilter模块。)

我觉得这是一个时代的错误。我不知道他们的代码是如何更新的,但我记得几年前,当我使用iFilter和EPocalipse代码时,也有同样的效果

您应该在调试器中运行它,并中断代码,以查看它在EPocalipse库中的挂起位置。很可能它被卡在了一个循环中

[编辑]
我找到了旧的更新代码,并将其放在skydrive()上。看看它是否能解决你的问题。它可以检测无限IFilter解析循环和单元格锁定的excel文件。

您试图读取的文件有多大?该文件只有179kb,在excel中可以正常打开。我已经下载了代码,构建了dll,并添加了dll来替换我的。现在,它将workerprocess挂起在它遇到的第一个pdf上。我不是在请求代码示例的支持。我感谢你的帮助。仅供参考。我已经有一段时间没有使用此代码了,所以它可能会失败:)您使用哪个PDF IFilter,以及我可以通过何种方式获取文件副本以进行测试?您是否在有问题的excel文件上测试了代码?我最终使用了您发布的代码和我已有的代码的混合。我主要只是对过滤器返回代码和infinate循环以及抛出异常使用额外的检查。再次感谢你的帮助。我现在成功地索引了5000多个不同类型的文档。谢谢你的帮助Mikael。。。昨天我们为此奋斗了几个小时。(我与mbalkema合作)