让您详细了解这个相当奇怪的问题。
我们有一个非常大的文本文件需要处理,它有 780MB,并且可能会变得更大。 该文件的处理位于 .NET WebService 中,从 Asp.Net 网站客户端发送请求并开始处理,然后在完成后返回到网站。
在通过 FTP 读取文件并在大约一分钟内处理文件之前。 现在该文件正在被移动到网络共享,但是当 .Net WebService 尝试处理该文件时,线程将被中止。
当我在我的机器上运行 .net webService 时,处理正常,并且完成(尽管非常慢)。 当 .net WebService 放置在 Web 服务器(由 IIS 6.0 托管)上时,它会遇到线程中止异常。
有什么想法吗?
最佳答案
如果您在自己的计算机上以 Debug模式运行它,则请求超时将被禁用。如果非调试,则启用(默认为 110 秒)。
参见http://msdn.microsoft.com/en-us/library/e1f13641.aspx
也就是说,让 Web 服务进行冗长的处理对于可扩展性来说通常不是一件好事。保持 Web [服务] 请求简短,并将长时间运行的批处理移至单独的 [Windows] 服务,以避免阻塞 IIS/asp.net 资源。
关于c# - 处理大文件的 .NET Web 服务线程被中止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5116304/