免责声明:不是答案,但是需要认真阅读!
非常重要的一点是要意识到您需要清理临时文件,因为当您在单个目录中达到65536时,框架将不会再创建任何文件并且您的应用程序将崩溃!
这些文件会在数月内积累,然后您将收到以下消息:
System.IO.IOException: The file exists.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.__Error.WinIOError()
at System.IO.Path.InternalGetTempFileName(Boolean checkHost)
at System.IO.Path.GetTempFileName():
当您尝试构建时,TFS会向您提供这个:
TF215097: An error occurred while initializing a build for build
definition XXXXX: The file exists.
你所需要做的就是浏览到Path.GetTempPath()
文件夹并调用del tmp*
注意:如果你有一个创建临时文件的ASP.NET应用程序,它的临时目录可能与当前登录用户不同。
如果不确定(或惊慌失措),只需创建一个aspx页面来打印出正在使用的位置:
TempPath.aspx
<%@ Page Language="C#"%>
Temp path: <%= System.IO.Path.GetTempPath() %>
当我作为NetworkService
运行时,我会得到以下结果。
C:\Windows\TEMP\
当以AppPool(名为www.example.com)运行时,路径可能是:
C:\Users\www.example.com\AppData\Local\Temp
顺便说一下,我认为即使你之后删除了该文件,这种情况仍然可能发生,因为文件名会增加。