0
我在生产服务器中有一个日志文件,它不断被程序更新(非常频繁地说,例如每秒5到10次)。是否读取只读文件锁定文件
这个日志文件显然是只读的开发服务器,并有可能文件大小增加到~4MB。
我在开发环境中有一个程序。定期读取文件内容并查找特定的行/关键字。
************************
If File.Exists(targetFile) Then
Using fs As FileStream = New FileStream(targetFile, FileMode.Open, FileAccess.Read)
Using sr As StreamReader = New StreamReader(fs)
Dim all As String = sr.ReadToEnd()
allLines = all.Split(Environment.NewLine)
End Using
End Using
End If
********************************
我的问题是,它看起来像从dev服务器读取锁定文件[不确定]。所以该服务是PRD无法访问该文件并抛出错误。
正确的是,第四个参数FileShare是答案 - 但看起来.Read或.ReadWrite会允许其他人访问该文件。 – rheitzman
@rheitzman OP说生产服务器在流打开时不能写入日志文件。因此,您需要使用Write或ReadWrite打开(取决于服务器是否也从自己的日志文件中读取)。 –
我认为问题是开发程序意外地锁定文件导致服务器错误。你可能是正确的,两个程序都需要使用FileShare()属性,但我的猜测是只是改变开发计划将做的伎俩。 – rheitzman