Ho usato questa tempo fa e funzionava bene (però fa comparire la Dialog di richiesta salvataggio):
codice:
Dim path As String = Me.Server.MapPath("testo.txt")
Dim fi As FileInfo = New FileInfo(path)
If fi.Exists Then
' Imposta le headers
Response.Clear()
Response.AddHeader("Content-Disposition", "attachment; filename=""" & fi.Name & """")
Response.AddHeader("Content-Length", fi.Length.ToString())
Response.ContentType = "application/octet-stream"
' Leggo dal file e scrivo nello stream di risposta
Response.WriteFile(path)
Else
Response.Write("File non trovato")
End If
Response.End() (facoltativo)