Buenos días, acabo de incorporarme a esta pagina y espero que me puedan ayudar.
Les cuento, actualmente desarrollo una aplicación con C# en la cual por medio de ella, los usuarios suben documentos a un FTP destinado a esto. Pues bien, en algun momento estos documentos deben ser visualizados por los usuarios y es ahi donde tengo el problema.
Si bien cuando realizó las pruebas localmente (en mi PC donde desarrollo) al pinchar un boton para ver el documento este se levanta y lo veo, cuando paso la aplicación a un servidor de pruebas no me permite verlo arrojando el siguiente error "No application is associated with the specified file for this operation".
Cabe señalar que la aplicación al momento de leer el documento va a la carpeta del FTP, extrae el documento y lo deja en una carpeta dentro de la misma aplicación y luego procede a abrirlo.
Adjunto código que actualmente utilizo.
protected void VerDocumento(string nombreArchivo, string ruta)
{
FtpWebRequest reqFTP;
try
{
string inputfilepath = MapPath("~/Archivos/" + nombreArchivo);
FileStream outputStream = new FileStream(inputfilepath, FileMode.Create);
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(Ftp + ruta + "/" + nombreArchivo));
reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(Usuario, Pass);
FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
Stream ftpStream = response.GetResponseStream();
long cl = response.ContentLength;
int bufferSize = 2048;
int readCount;
byte[] buffer = new byte[bufferSize];
readCount = ftpStream.Read(buffer, 0, bufferSize);
while (readCount > 0)
{
outputStream.Write(buffer, 0, readCount);
readCount = ftpStream.Read(buffer, 0, bufferSize);
}
ftpStream.Close();
outputStream.Close();
response.Close();
// iniciamos la instancia de la clase process
System.Diagnostics.Process proc = new System.Diagnostics.Process();
// nombre del archivo a abrir
proc.StartInfo.FileName = inputfilepath;
proc.StartInfo.Verb = "Open";
// arrancamos el proceso
proc.Start();
// liberamos recursos
proc.Close(); // atención: close no termina el proceso
}
catch (Exception ex)
{
Trace.Write("Problemas para ver el Archivo.");
Trace.Write(ex.Message);
if (ex.InnerException != null)
{
Trace.Write(ex.InnerException.Message);
}
throw;
}
}
Se antemano se agradecería la ayuda proporcionada