У меня есть программа, написанная на VB.NET, которая останавливает службу, которая использует файл x, изменяет x и перезапускает службу.
Я изменил свой код для тестирования, чтобы он просто считывал файл как строку и немедленно записывал его обратно.
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. Я не знаю, относится ли это к делу.
Любые предложения о том, что может быть причиной такого поведения?
Спасибо
B.J.