Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Giancarlo Braga

Checando status do servidor

Recommended Posts

Fala galera do fórum iMasters, tudo bom?

 

Eu precisei desse esquema que segue, e depois de muito pesquisar finalmente encontrei.

 

Para verificar o status de um servidor, usei um código que usa o ServerXMLHTTP do Microsoft XML (MSXML) para executar uma requisição HTTP.

 

Basicamente eu precisava checar se o servidor estava online. E este código serve para identificar na realidade se a página existe no servidor, então para funcionar do meu jeito eu teria que tratar também o fato do servidor não existir.

 

No caso, se o servidor estiver offline, a página não vai existir! É quase a mesma coisa.

 

Então precisei dar um 'on error resume next' pois caso não achasse a página, dava um erro, e por isso precisei fazer mais um tratatamento envolvendo variáveis para que mostra-se uma mensagem de offline.

 

Dessa forma podemos identificar se o servidor que aquela página está hospedada está ONLINE, apoiando-se na primitiva de que ou vai dar erro 404 pela página não existir ou simplesmente o servidor não será encontrado.

 

No meu caso, trabalho com uma rede de lojas. Por isso, vários relatórios pesados dependem de servidores que estão em vários lugares.

 

Saber o status era fundamental para algumas situações técnicas, então precisei desenvolver algo. Segue o código abaixo:

 

<%
function checaOnline()
	on error resume next
		resolveTimeout = 900
		conectaTimeout = 900
		sendTimeout = 900
		receiveTimeout = 900
		
		'CHECANDO status
		verificaURL = "http://XXX.XXX.XXX.XXX:XX/index.asp"
 	    retorno = 0		
		
		Set oHttpRequest = CreateObject("MSXML2.ServerXMLHTTP")
		
		with oHttpRequest 
		  .SetTimeouts resolveTimeout,conectaTimeout,sendTimeout,receiveTimeout
		  .Open "GET" , verificaURL
		  .Send
		
		  Select case .Status
			case 200 'ok
			   Response.write "<b><font face=""Verdana"" color=""#006600"">SERVIDOR ONLINE</font></b><br>"
			   retorno = 1
			case Else
			   Response.Write "<b><font face=""Verdana"" color=""#CC0000"">SERVIDOR OFFLINE</font></b><br>"
			   retorno = 1
		  End Select 
		End With 
		
		if retorno = 0 then
			   Response.Write "<b><font face=""Verdana"" color=""#CC0000"">SERVIDOR OFFLINE</font></b><br>"
		end if
		
		

end function

call checaOnline()
%>

Caso alguém tenha melhorias estou aberto à opiniões. Não tive muito tempo pra explorar isso hoje mas provavelmente pesquisando mais a fundo devem ter soluções sem uso do 'on error resume next' ou adaptações no código. O importante é que funciona!

 

 

Fonte: http://www.macoratti.net/xml_vb3.htm

 

 

Espero que ajude,

Giancarlo Braga

Compartilhar este post


Link para o post
Compartilhar em outros sites

Otima contribuição

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.