我有一个用VB.NET编写的程序,它停止使用文件x,修改x并重新启动服务的服务。Visual Basic程序不释放资源
我修改了我的测试代码,以便它只是以字符串的形式读取文件并立即将其写回。
Shell("net stop " & SERVICE_NAME, , True)
Dim myReader As System.IO.StreamReader
myReader = My.Computer.FileSystem.OpenTextFileReader(x)
fileString = myReader.ReadToEnd()
myReader.Close()
Dim tempFile As System.IO.StreamWriter
tempFile = My.Computer.FileSystem.OpenTextFileWriter(x, False)
tempFile.Write(fileString)
tempFile.Close()
Shell("net start " & SERVICE_NAME, , True)
服务的停止是没有问题的,并修改该文件是没有问题的,但服务启动时,它会立即停止,因为,尽我可以猜测,该文件正在使用中。即使我尝试手动启动服务,它也会立即停止。但是,我发现我可以打开文件x,单击保存而不修改任何内容,关闭文件并启动服务,并且所有内容都能正常工作。
如果我评论写作部分,一切工作正常。
此外,我正在修改的文件具有.conf文件扩展名。我不知道这是否相关。
有什么建议可能会导致此行为?
感谢,
BJ
也许值得考虑通过你的事件日志看看,看看,如果服务一直困扰着报告为什么它无法重新启动。 – Xav 2009-12-22 14:51:09
这可能是由于文件资源未被释放而导致错误的轨道,但再次打开,保存和关闭文件会使所有内容正常工作。 – Benny 2009-12-22 14:52:22
这不是VB6代码的外观 - 它是VB.net – 2009-12-22 14:56:32