Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema en servicio Multipart

Estas en el tema de Problema en servicio Multipart en el foro de .NET en Foros del Web. Hola, cree un servicio en asp.net que envia por post un archivo multipart a la pagina de Arba Argentina por HTTPS. el problema que tengo ...
  #1 (permalink)  
Antiguo 18/09/2014, 08:12
Avatar de lucasmoadr  
Fecha de Ingreso: marzo-2007
Ubicación: Llavallol, Buenos Aires
Mensajes: 220
Antigüedad: 17 años
Puntos: 5
Problema en servicio Multipart

Hola,

cree un servicio en asp.net que envia por post un archivo multipart a la pagina de Arba Argentina por HTTPS. el problema que tengo es que me da el siguiente error:

500 "No se puede escribir datos de en la conexión de transporte: Se ha forzado la interrupción de una conexión existente por el host remoto".

Lo raro es que cuando abro el programa FIDDLER para ver los paquetes que estoy mandando, el servicio me funciona correctamente. Alguien sabe si este programa abre algun puerto especial, o si debo poner algo en mi codigo para poder enviar el multipart.

Cita:
System.Net.Security.RemoteCertificateValidationCal lback(ValidateServerCertificate);
string url = System.Configuration.ConfigurationManager.AppSetti ngs.Get("urlArba").ToString();
HttpWebRequest requestToServerEndpoint =
(HttpWebRequest)WebRequest.Create(url);
requestToServerEndpoint.ProtocolVersion=HttpVersio n.Version10;

requestToServerEndpoint.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
requestToServerEndpoint.UserAgent = "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36";
requestToServerEndpoint.Headers.Add("Accept-Encoding: gzip,deflate,sdch");
requestToServerEndpoint.Headers.Add("Accept-Language: es-ES,es;q=0.8");
requestToServerEndpoint.KeepAlive = false;
string boundaryString = "WebKitFormBoundarytgRINaBf0BThkhe0";
requestToServerEndpoint.Method = WebRequestMethods.Http.Post;
requestToServerEndpoint.ContentType = "multipart/form-data; boundary=" + boundaryString;
requestToServerEndpoint.Credentials = System.Net.CredentialCache.DefaultCredentials;

MemoryStream postDataStream = new MemoryStream();
StreamWriter postDataWriter = new StreamWriter(postDataStream);

postDataWriter.Write("--" + boundaryString + "\r\n");
postDataWriter.Write("Content-Disposition: form-data; name=\"user\"\r\n\r\n{0}",
user);

postDataWriter.Write("\r\n--" + boundaryString + "\r\n");
postDataWriter.Write("Content-Disposition: form-data; name=\"password\"\r\n\r\n{0}",
password);

// Include the file in the post data
postDataWriter.Write("\r\n--" + boundaryString + "\r\n");
postDataWriter.Write("Content-Disposition: form-data; "
+ "name=\"{0}\"; "
+ "filename=\"{1}\""
+ "\r\nContent-Type: {2}\r\n\r\n{3}",
"file",
nombreArchivo,
"text/plain",
"texto archivo");

postDataWriter.Flush();
postDataWriter.Write("\r\n--" + boundaryString + "\r\n");
postDataWriter.Write("Content-Disposition: form-data; name=\"submit\"\r\n\r\n{0}",
"Ingresar");

postDataWriter.Write("\r\n--" + boundaryString + "--\r\n");
postDataWriter.Flush();

requestToServerEndpoint.ContentLength = postDataStream.Length;

requestToServerEndpoint.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cac he.RequestCacheLevel.Default);
using (Stream s = requestToServerEndpoint.GetRequestStream())
{
postDataStream.WriteTo(s);
}
postDataStream.Close();
WebResponse response = requestToServerEndpoint.GetResponse();
StreamReader responseReader = new StreamReader(response.GetResponseStream());

return responseReader.ReadToEnd();
__________________
Alquileres en la costa
Se tu mismo

Etiquetas: https, servicio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:02.