TextReader Read和ReadToEnd挂起而不抛出异常

时间:2009-12-10 20:48:50

标签: c# ifilter

有没有办法知道在调用之前调用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)来读取块并得到同样的问题。

1 个答案:

答案 0 :(得分:7)

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

我认为这是EPocalipse IFilter中的一个错误。我不知道他们的代码是如何更新的,但是几年前,当我使用IFilters并使用EPocalipse代码时,我想起了同样的效果。

您应该在调试器中运行它并破坏代码以查看它挂在EPocalipse库中的位置。很可能是它陷入了困境。

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

相关问题