我构建了一个Web应用程序,用户可以请求在服务器上生成并发送回客户端的报告。该过程正常工作并将文件发送回客户端,但我们无法打开该文件。进一步调查显示,服务器上的进程仍然可以通过IIS应用程序池处理该文件。
这是一个奇怪的部分:
这可能是什么原因?我们正在运行Windows Server 2003,IIS 6.请帮助!!
答案 0 :(得分:1)
您是否在服务器上运行防病毒软件?它可能是扫描文件,因为它是一个新文件。
我回应上面关于Dispose的PITADeveloper的评论。我要进一步说,你应该确保你创建的每个实现IDisposable的对象都有Dispose调用它。如果您创建它,则必须处理它:
using (var resource = ResourceType.Create())
{
// Use the resource
} // resource.Dispose called here even if your code throws an exception
答案 1 :(得分:0)
你说“.NET代码在文件上调用Close()”。它是否也在用于创建文件的任何资源上调用Dispose()?
答案 2 :(得分:0)
如果您通过HTTP发送文件,服务器的锁定不会对能够在客户端上打开文件产生任何影响。您确定服务器关闭了生产服务器上的文件吗?也许生产服务器上的某些东西阻止了Web应用程序完全生成文件。