Yes, and the other process accessing the file is also your process.
You open the file at least twice:
Dim document As XmlReader = New XmlTextReader(Server.MapPath("~/App_Data/XMLFile1.xml"))
and then several times in a loop - well, likely once only because of the failure:
Dim filename As String = Server.MapPath("~/App_Data/XMLFile1.xml")
Dim doc As New XmlDocument()
doc.Load(filename)
Find out what you want to do. And then structure the code accordingly. I cannot believe that you want to add data to that file while you are reading it - rather do that afterwards.