Verificar URL desde una página ASP.NET

11/01/2008 - 22:05 por Anonimo | Informe spam
Para verificar si fue instalado un sitio Web de IIS en mi intranet, yo uso:

using System.Net;
using System.IO;
...
WebClient wc = new WebClient();
Stream r = wc.OpenRead(url);
if (r.CanRead) cont = true;
r.Close();
// si cont=true entonces el URL existe...

Donde url es una pagina simple del sitio Web que quiero verificar. Bien,
este código trabaja bien desde una aplicación, pero cuando intento usarlo
desde una página ASP.NET da error "No se puede conectar al servidor
remoto". - Solo deseo verificar el URL, no navegar hacia el.

Mi pregunta:
¿Existe otra forma de verificar que existe un URL desde una pagina ASP.NET?

Gracias.
 

Leer las respuestas

#1 Jhonny Vargas P.
11/01/2008 - 22:21 | Informe spam
Maestro... que tal... tanto tiempo :)

Puede ser que el usuario con el que estás ejecutando las páginas aspx no
tenga acceso a Internet por esto mismo te manda este error.

También puede ser el servidor no tenga acceso a internet, por esto mismo
será imposible al menos que le den los permisos.


Si es el usuario quien no tiene acceso, puedes "cambiarte de usuario" y
asignar uno que tenga los privilegios.
http://msmvps.com/blogs/jvargas/pag...sonar.aspx


De todas maneras te adjunto varias maneras de ejecutar URL, estas funciones
las utilizaba para mandar datos a una URL... te mando 3 formas distintas...
una de ellas la tienes... jejeje

Pero creo que el tema es de permisos.



Function getURLWebClient(ByVal txtURL As String, ByVal XML As String,
ByRef r As String) As Boolean

Dim web As New System.Net.WebClient
'ESTA PARTE ES POR SI TIENES PROXY para salir con un usuario
''If
Convert.ToString(ConfigurationSettings.AppSettings("ProxyName")) <> "" Then
'' Dim myProxy As New
System.Net.WebProxy(Convert.ToString(ConfigurationSettings.AppSettings("ProxyName")),
Convert.ToInt16(ConfigurationSettings.AppSettings("ProxyPort")))
''End If
Try
'web.Headers.Add("Content-Type",
"application/x-www-form-urlencoded")
Dim d As Byte() = System.Text.Encoding.ASCII.GetBytes(XML)
Dim res As Byte() = web.UploadData(txtURL, "POST", d)
r = System.Text.Encoding.ASCII.GetString(res)

Return True

Catch ex As Exception
r = ex.ToString
Return False

End Try


End Function


Private Function getUrlOld(ByVal txtURL As String, ByVal XML As String,
ByRef r As String) As Boolean

Dim objServerXMLHTTP

objServerXMLHTTP = Server.CreateObject("MSXML2.SERVERXMLHTTP")
objServerXMLHTTP.Open("POST", txtURL, False)
objServerXMLHTTP.Send(XML)

r = objServerXMLHTTP.ResponseText()

objServerXMLHTTP = Nothing

End Function

Private Function getUrl(ByVal txtURL As String, ByVal XML As String,
ByRef r As String) As Boolean
Dim vURL As String = txtURL
Dim strResp As String = ""
Dim ok As Boolean = True

Try
Dim request As HttpWebRequest = CType(WebRequest.Create(vURL),
HttpWebRequest)

' Set some reasonable limits on resources used by this request
request.MaximumAutomaticRedirections = 4
request.MaximumResponseHeadersLength = 4


' Set credentials to use for this request.
Dim myCredentials As New
NetworkCredential(System.Configuration.ConfigurationSettings.AppSettings("CredencialUsuario"),
_
System.Configuration.ConfigurationSettings.AppSettings("CredencialClave"))
'request.Credentials = CredentialCache.DefaultCredentials
request.Credentials = myCredentials

Dim response As HttpWebResponse = CType(request.GetResponse(),
HttpWebResponse)

'strResp = strResp & vbCr & vbLf & response.ContentLength
'strResp = strResp & vbCr & vbLf & response.ContentType

' Get the stream associated with the response.
Dim receiveStream As IO.Stream = response.GetResponseStream()

' Pipes the stream to a higher level stream reader with the
required encoding format.
Dim readStream As New IO.StreamReader(receiveStream, True)

'strResp = strResp & vbCr & vbLf & "Response stream received."
'strResp = strResp & vbCr & vbLf & readStream.ReadToEnd() & vbLf
& vbCr
strResp = readStream.ReadToEnd()
response.Close()
readStream.Close()

Catch ex As Exception
strResp = ""
strResp = ex.Message
ok = False

End Try
'printLog(strResp)
r = strResp
Return (ok)
End Function





Saludos,
Jhonny Vargas P.
http://msmvps.com/jvargas


"<Harvey Triana />" escribió en el mensaje de
noticias:#
Para verificar si fue instalado un sitio Web de IIS en mi intranet, yo
uso:

using System.Net;
using System.IO;
...
WebClient wc = new WebClient();
Stream r = wc.OpenRead(url);
if (r.CanRead) cont = true;
r.Close();
// si cont=true entonces el URL existe...

Donde url es una pagina simple del sitio Web que quiero verificar. Bien,
este código trabaja bien desde una aplicación, pero cuando intento usarlo
desde una página ASP.NET da error "No se puede conectar al servidor
remoto". - Solo deseo verificar el URL, no navegar hacia el.

Mi pregunta:
¿Existe otra forma de verificar que existe un URL desde una pagina
ASP.NET?

Gracias.

Preguntas similares