por casualidad tenes un proxy ?

  ----- Original Message ----- 
  From: Mariano Selvaggi 
  To: puntonet@mug.org.ar 
  Sent: Wednesday, July 16, 2008 3:32 PM
  Subject: [puntonet] Objeto MSXML2.XMLHTTP30 en sitios con SSL


  No, el sitio no es publico, es de la empresa, se necesita VPN para poder 
acceder. O sea si yo pongo la url en mi browser anda bien.

  El tema es cuando quiero acceder a traves del codigo que me tira este tipo de 
errores.



  ----- Mensaje original ----
  De: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
  Para: puntonet@mug.org.ar
  Enviado: miércoles 16 de julio de 2008, 11:35:58
  Asunto: [puntonet] Objeto MSXML2.XMLHTTP30 en sitios con SSL

   
  Hay ambientes con certificados solo lado server como los sitios de los 
bancos, y ambientes más estrictos con certificados lado server y lado cliente 
(como Amadeus) , digamos que te mandan un  certificado por mail y vos los tenes 
que instalar en el almacen de cerificados de cada PC, el IExplorer 
automaticamente hace la recepción y envió de los certificados requeridos por el 
sitio pero  programaticamente hay que hacer todo a mano.

  El sitio es publico ? se puede ver ?

  Saludos

    ----- Original Message ----- 
    From: Mariano Selvaggi 
    To: puntonet@mug.org.ar 
    Sent: Wednesday, July 16, 2008 12:12 PM
    Subject: [puntonet] Objeto MSXML2.XMLHTTP30 en sitios con SSL


    Creo que solo del servidor, pero cual seria la diferencia? Vos crees que el 
problema viene por ese lado?



    ----- Mensaje original ----
    De: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
    Para: puntonet@mug.org.ar
    Enviado: miércoles 16 de julio de 2008, 9:54:00
    Asunto: [puntonet] Objeto MSXML2.XMLHTTP30 en sitios con SSL

     
    Tu server requiere certificados en el lado cliente ? o solo del servidor ?

    por las dudas para las pruebas subile el timeout
      ----- Original Message ----- 
      From: Mariano Selvaggi 
      To: puntonet@mug.org.ar 
      Sent: Wednesday, July 16, 2008 11:41 AM
      Subject: [puntonet] Objeto MSXML2.XMLHTTP30 en sitios con SSL


      Gracias Marcelo por tu ejemplo, adapte tu codigo al 2005. Pero me esta 
dando el siguiente error cuando nuevamente cuando pongo el codigo en produccion 
que es SSL. Se te ocurre algo de que puede estar fallando?

      A connection attempt failed because the connected party did not properly 
respond after a period of time, or established connection failed because 
connected host has failed to respond 

      Aca esta mi codigo:

      Protected Sub btnTest_Click(ByVal sender As Object, ByVal e As 
System.EventArgs) Handles btnTest.Click 

      Dim lcUrl As String = 
"https://salesre.mariano.com/attest/salesrep/test.asp";

      Dim loHttp As HttpWebRequest = WebRequest.Create(lcUrl)

      Dim loWebResponse As HttpWebResponse

      Dim enc As Encoding

      Dim loResponseStream As StreamReader

      Dim oSB As StringBuilder = New StringBuilder(1024000)

      'ServicePointManager.CertificatePolicy = New MyPolicy

      ServicePointManager.ServerCertificateValidationCallback = New 
RemoteCertificateValidationCallback(AddressOf MyCertificateValidation)

      loHttp.Timeout = 60000 '10 secs

      loWebResponse = loHttp.GetResponse()

      enc = Encoding.UTF8

      loResponseStream = New StreamReader(loWebResponse.GetResponseStream(), 
enc)

      oSB.Append(loResponseStream.ReadToEnd())

      loWebResponse.Close()

      loResponseStream.Close()

      End Sub



      Public Function MyCertificateValidation(ByVal sender As Object, ByVal 
certificate As X509Certificate, ByVal chain As X509Chain, ByVal Errors As 
SslPolicyErrors) As Boolean

      Return True

      End Function


       


      ----- Mensaje original ----
      De: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
      Para: puntonet@mug.org.ar
      Enviado: miércoles 16 de julio de 2008, 9:01:38
      Asunto: [puntonet] Objeto MSXML2.XMLHTTP30 en sitios con SSL

       
      S no me equivoco el tema que te está pasando es que el sitio te está 
enviando el certificado y vos en ninguna parte se lo estás aprobando

      Deberías tener algo en tu codigo parecido a esto (para .net 1.1)

      System.Net.ServicePointManager.CertificatePolicy = New MyPolicy
      Dim oReq As HttpWebRequest
      Dim responseReader As StreamReader
      Dim responseData As String
      oReq = 
CType(WebRequest.Create("https://sales.mariano..com/paginaReporte.aspx";), 
HttpWebRequest)
      oReq.Method = "GET"
      oReq.Timeout = 30000
      responseReader = New StreamReader(oReq.GetResponse().GetResponseStream(), 
System.Text.Encoding.Default)
      responseData = responseReader.ReadToEnd()
      responseReader.Close()
      ...........

      Public Class MyPolicy
          Implements ICertificatePolicy

          Public Function CheckValidationResult(ByVal srvPoint As ServicePoint, 
_
                        ByVal cert As X509Certificate, ByVal request As 
WebRequest, _
                        ByVal certificateProblem As Integer) _
                    As Boolean Implements 
ICertificatePolicy.CheckValidationResult
              'Return True implica que siempre se acepte el certificado
              Return True
          End Function
      End Class

        ----- Original Message ----- 
        From: Mariano Selvaggi 
        To: puntonet@mug.org.ar 
        Sent: Wednesday, July 16, 2008 10:36 AM
        Subject: [puntonet] Objeto MSXML2.XMLHTTP30 en sitios con SSL


        Antes que nada, les agradezco muchisimo su tiemo, hay un monton de 
cosas que no estaba al tanto.
        Les explico rapidamente porque necesito hacer lo que estoy haciendo en 
mi aplicacion

        Mi aplicacion es un aplication ASP .NET. Esta aplication tiene un boton 
que se llama "Generate". El proceso basicamente es el siguiente:

        Loop 800
                 1. Leo html de pagina asp correspondiente, obtengo parametros 
del SQL (son reportes que se encuentran en paginas asp y                        
                                                                                
 es imposible migrarlos porque son miles)
                 2. Html lo paso a un objeto que me convierte el string (el 
html) en un pdf

                 3. Subo el pdf a un sharepoint
        Fin de loop

        En produccion tengo un servidor SSL porque es standar de la empresa, 
trabajo en una empresa global y no hay forma de cambiarlo, la verdad que es 
bastante plomo el tema.

        Basicamente el error que tengo es "A connection with the server could 
not be established  " tanto cuando uso MSXML2.ServerXMLHTTP30 o cuando usao 
MSXML2.XMLHTTP30

        Si conocen alguna otra forma de hacerlo la intento porque estoy medio 
complicado, por ejemplo ese metodo Execute, con ese metodo puedo hacer lo 
mismo??

        De nuevo, muchas gracias gente, es muy util toda su informacio y la 
lista es siempre mi mejor recurso.


        ----- Mensaje original ----
        De: Diego Jancic <[EMAIL PROTECTED]>
        Para: puntonet@mug.org.ar
        Enviado: martes 15 de julio de 2008, 22:15:47
        Asunto: [puntonet] Objeto MSXML2.XMLHTTP30 en sitios con SSL


        Hola Mariano,

        Si bien estas usando ajax en el sentido especifico de la pagina, no me 
refería a eso y te pido que te olvides de lo que dije porque no estaba en 
contexto.



        Ahora, lo que vos tenes que te hacer debería funcionar (configuración 
mas o configuración menos lo deberías poder hacer), sin embargo no es lo optimo.

        En términos generales, tampoco seria lo optimo que uses un 
HttpWebRequest o un WebClient o cosas similares. 2 razones que se me ocurren:



        1) Si haces esto lo que va a pasar es que el thread con el que estes 
ejecutando paginaMaster.aspx se va a bloquear esperando que termine de 
ejecutarse tu request,  y como a IIS le va a llegar otro request (a 
paginaReporte.aspx) va a tener que utilizar otro thread. Entonces vas a estar 
utilizando 2 threads para ejecutar un solo request, y encima uno lo vas a tener 
sin hacer nada. Si a esto le sumas que IIS limita la cantidad de threads 
simultaneos, y el costo que tiene levantar un thread, yo te diría que vas a 
bajar la performance de esta página en particular a la mitad. Sumandolo el gran 
riesgo que te voy a decir en el pto 3..



        2) Cuando vos haces un request usando un HttpWebRequest, o el 
MSXML2.XMLHTTP30 o lo que sea, vas a estar haciéndolo como si usases un browser 
(como ya había dicho Carlos). Si se hace un request usando un browser, vas a 
estar ejecutando de nuevo todo el sistema de autenticación y autorización de 
asp.net, vas a estar ejecutando todos los HttpModules de nuevo e incluso podes 
llegar a crear sin darte cuenta un nueva Session que te va a estar pesando 
durante los próximos 20 minutos. Ahora, si a vos te interesa usar alguno de los 
HttpModules específicamente (por ejemplo el del OutputCache) lo vemos en 
particular, por posiblemente convenga hacerlo manualmente.



        3) Sumando estas 2 cosas, vas a tener un problema que te puede tirar la 
aplicación abajo. Suponete que IIS atiende máximo 100 requests simultaneos (no 
me acuerdo cual es el default), cuando vos tengas 99 requests ejecutándose, y 
un usuario entre en paginaMaster.aspx, la pagina va a hacer internamente el 
request 101 y IIS lo va a encolar. Ahora, ni el request 100 ni el 101 se van a 
ejecutar hasta que otro termine, provocando que los request encolados se 
empiece a procesar mas lentamente (ahora tenes 99 y no 100 threads 
simultaneos!), esa lentitud adicional va a crear un entorno mas propenso a que 
se encolen mas request. Creo que podes imaginarte como sigue, un pequeña 
lentitud va a hacer al servidor mas lento aun, provocando que se vuelva mas 
lento hasta que básicamente explote todo J..... En el peor de los casos podrías 
llegar a tener 100 requests a paginaMaster.aspx ejecutandos, en donde los 100 
request subyacentes a paginaReporte.aspx estén encolados, provocando que no se 
procese absolutamente nada y acumulando mas requests a la cola.



        Bueno, creo que la explicación es mas complicada que la solución :P.

        Te recomiendo que uses el método:

        void Execute(string path, TextWriter writer, bool preserveForm)



        Que lo podes encontrar dentro de HttpServerUtility (o de forma práctica 
en: HttpContext.Server)



        De esa forma lo que haces es renderizar toda la pagina en memoria (en 
realidad podría ser en cualquier Stream: un archivo, la red, etc, etc), pero:

        -          Usas el mismo thread que la pagina inicial

        -          Te salteas toda la parte de autenticación y autorización que 
ya esta hecha (no la haces 2 veces)

        -          Te evitas encriptar paginaReporte.aspx, para desencriptarla 
dentro de paginaMaster.aspx y volverla a encriptar para mandársela al cliente.

        -          Toda la ejecución se mantiene dentro del entorno de .net, no 
estas saliendo por TCP para hacer un request al IIS y volviéndote a meter en el 
mismo servidor.



        La única desventaja es: las 2 paginas tienen que estar dentro del mismo 
servidor, y más específicamente dentro del mismo application domain (no estoy 
del todo seguro si es la palabra correcta, básicamente tienen que estar bajo el 
mismo web.config y carpeta BIN las 2 paginas)



        Si necesitas un ejemplo avis y lo hago/busco.



        Saludos,

        Diego





        From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mariano 
Selvaggi
        Sent: Martes, 15 de Julio de 2008 10:12 p.m.
        To: puntonet@mug.org.ar
        Subject: [puntonet] Objeto MSXML2.XMLHTTP30 en sitios con SSL



        Hola Diego,



        Gracias por contestar.. Siempre estoy en el mismo dominio. Es decir, 
intento acceder a una pagina del mismo server. Supone que mi AJAX esta en la 
pagina.



        https://sales..mariano.com/paginaMaster.aspx



        Entonces, dentro de esa pagina intento acceder a una pagina en el mismo 
server:
                                        
https://sales.mariano.com/paginaReporte.aspx



        O sea, ya me autentique en el sitio, no entiendo porque razon me esta 
fallando..



        Saludos



        ----- Mensaje original ----
        De: Diego Jancic <[EMAIL PROTECTED]>
        Para: puntonet@mug.org.ar
        Enviado: martes 15 de julio de 2008, 17:02:18
        Asunto: [puntonet] Objeto MSXML2.XMLHTTP30 en sitios con SSL

        Hola,
        Me parece que el problema lo vas a tener siempre que cambies de
        dominio (en relacion con la pagina donde esta el codigo ajax)...
        Intenta hacer una pagina, que la abris mediante https y ahi pones tu
        JS (usando una url relativa, sin incluir https://dominio.com)

        Porque de la forma que lo estas haciendo, no te deberia andar en
        ningun browser moderno (salvo que me este olvidando, pero me llama la
        atencion..)

        Saludos!,
        Diego

        2008/7/15 Mariano Selvaggi <[EMAIL PROTECTED]>:
        > Hola Lista,
        >
        >
        >
        > Tengo un gran problema, a lo mejor algunos de ustedes conoce la 
solucion.
        > Tengo un pequeño proceso que basicamente hace lo siguiente:
        >
        >
        >
        > Dim url As String = "https:// ......."
        >
        > Dim objxML As New MSXML2.XMLHTTP30
        >
        > Dim rst As String = ""
        >
        >
        >
        > objxML.open(
        >
        > "GET", url, False)
        >
        > Try
        >
        >    objxML.send()
        >
        >    rst = objxML.responseText
        >
        > Catch ex As Exception
        >
        >    rst = ex.Message
        >
        > End Try
        >
        > Response.Write(rst)
        >
        > objXML =
        >
        > Nothing
        >
        >
        >
        > Cuando lo hago en una pagina que no es https me funciona perfecto, el
        > problema lo tengo ahora en el servidor de produccion que tiene SSL.
        >
        > Cualquier ayuda sera muy bien bienvenida. Muchas gracias!!
        >
        > ________________________________
        > ¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
        > http://ar.mobile.yahoo.com/onesearch




------------------------------------------------------------------------


        ¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
        http://ar.mobile.yahoo.com/onesearch



------------------------------------------------------------------------

        ¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
        http://ar..mobile.yahoo.com/onesearch


--------------------------------------------------------------------------

      ¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
      http://ar.mobile.yahoo.com/onesearch


----------------------------------------------------------------------------

    ¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
    http://ar.mobile.yahoo.com/onesearch


------------------------------------------------------------------------------

  ¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
  http://ar.mobile.yahoo.com/onesearch

Responder a