Escribir archivo en el servidor web – ASP.NET

Simplemente quiero escribir el contenido de un control TextBox en un archivo en la raíz del directorio del servidor web … ¿cómo lo especifico?

Tenga en cuenta que estoy probando esto localmente … sigue escribiendo el archivo en mi directorio de archivos de progtwig \ visual studio \ Common \ IDE en lugar de en mi directorio de proyecto (que es donde supongo que es root cuando el servidor web se dispara) .

¿Mi problema tiene algo que ver con la especificación de la ubicación correcta en mi web.config? Intenté eso y todavía no voy …

Muchas gracias…

 nulo protegido TestSubmit_ServerClick (remitente del objeto, EventArgs e)
     {
         StreamWriter _testData = new StreamWriter ("data.txt", true);
         _testData.WriteLine (TextBox1.Text);  // Escribe el archivo.
         _testData.Close ();  // Cerrar la instancia de StreamWriter.
         _testData.Dispose ();  // Eliminar de la memoria.       
     } 

protected void TestSubmit_ServerClick(object sender, EventArgs e) { using (StreamWriter _testData = new StreamWriter(Server.MapPath("~/data.txt"), true)) { _testData.WriteLine(TextBox1.Text); // Write the file. } } 

Server.MapPath toma una ruta virtual y devuelve una ruta absoluta. “~” se usa para resolver la raíz de la aplicación.

Hay métodos como WriteAllText en la clase File para operaciones comunes en archivos.

Use el método MapPath para obtener la ruta física de un archivo en su aplicación web.

 File.WriteAllText(Server.MapPath("~/data.txt"), TextBox1.Text); 
 protected void TestSubmit_ServerClick(object sender, EventArgs e) { using (StreamWriter w = new StreamWriter(Server.MapPath("~/data.txt"), true)) { w.WriteLine(TextBox1.Text); // Write the text } } 

Tenga en cuenta que también tendrá que dar acceso de escritura a la cuenta IUSR para la carpeta una vez que la cargue en su servidor web.

Personalmente recomiendo no permitir el acceso de escritura a la carpeta raíz a menos que tenga una buena razón para hacerlo. Y luego debe tener cuidado con el tipo de archivos que permite guardar para que no permita inadvertidamente que alguien escriba sus propias páginas ASPX.