Ir para conteúdo

POWERED BY:

Arquivado

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

xanburzum

descobrir tudo sobre o seu ambiente ASP.

Recommended Posts

descobrir tudo sobre o seu ambiente ASP.

 

10 métodos, desde:

- dumping passed inputs (formulário / QueryString / cookies / clientcertificates)

- Controle de todas as definições de propriedade ASP

- testando server I/O (apagar / mover / copiar / ler / escrever / criar) com arquivos texto

- Dumping persistência de dados e objetos (sessão / aplicação)

- Recolhendo informações scripting engine (VBScript / JScript).

 

Este objeto permite saber que quase tudo o que há para saber sobre

o servidor do ambiente

 

sintaxe:

Set object = New Debugger

exemplo:

Dim xDebug

Set xDebug= New Debugger
With xDebug
	.EndAfterDebug = False
	.DumpASPProperties
'	.DumpScriptingEngines
'	.DumpApplication
'	.DumpSession
'	.DumpForm
'	.DumpQueryStrings
'	.DumpClientCertificates
'	.DumpCookies
'	.DumpServerVariables
'	.TestServerIO
End With
Set xDebug= Nothing

code:

'========== CLASS DEFINICAO ==================
'========== DOCUMENTACAO  =====================
'****************************************************
'Objetivo: 
'O depurador permite ver 
'Mais predefinições no Ambiente ASP incluindo 
'Todas as entradas passadas para a página atual, e qualquer persistencia 
'Sessão ou aplicação de dados e permite
'teste servidor I / O para o diretório onde a 
'Classe está sendo chamada.
'
' Sintaxe:
'  Dim xDebug
'
'  Set xDebug as New Debugger
'  xDebug.[propriedade[ = val]|metodo[()]]
'  
'  
'  
' Propriedades: 
'Todas as propriedades são opcionais e têm valores padrão 
'Se não definidas explicitamente .
'
'   obj.EndAfterDebug[ = boolean]
'	Opcional. Booleano. Padrões false. 
'True desempenhará um Response.End quando a classe 
'Foi definida como Nothing. Nada abaixo da chamada 
'Para a classe de executar. Útil para depuração. 
'  
'  
' Metodos:
'  Todos os métodos funcionam independentemente um do outro e 
'São procedimentos autônomo. Eles podem ser chamados em 
'Qualquer ordem

'   obj.TestServerIO()
'	 Nulo. sem Valor de Retorno. Imprime os resultados usando
'	 Response.Write()
'	 testes servidor I/O 
'	 Diretório.
'	 No diretório atual (onde a classe 
'	 'É chamado a partir TestServerIO 
'	 Seguintes functionsI/O :
'		delete, move, copy, read, write, create
'	 TestServerIO retorna informações e / ou erros 
'	 Sobre cada função, se ele falhar. Muito útil 
'	 ter certeza que sua conta IUSR_machinename tenha 
'	 As permissões adequadas no virtual server.
'
'  
'   obj.DumpASPProperties()
'	 Nulo. sem Valor de Retorno. exibe os resultados usando
'	 Response.Write()
'	 Retorna todos os valores para os objetos. 
'	 'Retorna definições de propriedade para essas propriedades:
'
'	   Session Properties
'		 Session.CodePage
'		 Session.LCID
'		 Session.SessionID
'		 Session.Timeout
'
'	   Server Properties
'		 Server.ScriptTimeout
'
'	   Response Properties
'		 Response.Buffer
'		 Response.CacheControl
'		 Response.Charset
'		 Response.ContentType
'		 Response.Expires
'		 Response.ExpiresAbsolute
'		 Response.IsClientConnected
'		 Response.Status
'
'	   Request Properties
'		 Request.TotalBytes
'
'  
'   obj.DumpScriptingEngines()
'	 Nulo. sem Valor de Retorno. exibe os resultados usando
'	 Response.Write()
'	 Retorna informações sobre o VBScript e JScript 
'	 scripting engines no server.
'  
'
'   obj.DumpApplication()
'	 Nulo. sem Valor de Retorno. exibe os resultados usando
'	 Response.Write()
'	 Retorna informações sobre a aplicação variáveis 
'	 e application.
'	 
'  
'   obj.DumpSession()
'	 Nulo. sem Valor de Retorno. exibe os resultados usando
'	 Response.Write()
'	 Retorna informações sobre variáveis sessão 
'	 
'  
'
'   obj.DumpForm()
'	 Nulo. sem Valor de Retorno. exibe os resultados usando
'	 Response.Write()
'	 Retorna todos os inputs do formulário disponível na página.
'  
'
'   obj.DumpQueryStrings()
'	 Nulo. sem Valor de Retorno. exibe os resultados usando
'	 Response.Write()
'	 Retorna todos query string disponíveis na página  
'
'   obj.DumpClientCertificates()
'	 Nulo. sem Valor de Retorno. exibe os resultados usando
'	 Response.Write()
'	 Retorna todos client certificate.
'  
'
'   obj.DumpCookies()
'	 Nulo. sem Valor de Retorno. exibe os resultados usando
'	 Response.Write()
'	 Retorna todos os cookies na página.
'  
'
'   obj.DumpServerVariables()
'	 Nulo. sem Valor de Retorno. exibe os resultados usando
'	 Response.Write()
'	 Retorna todas as server variables na página  
'  
'  
' Exemplo:
'  
'  1.) test I/O no server.
'
'	Dim xDebug
'
'	Set xDebug= New Debugger
'	xDebug.EndAfterDebug = True
'	xDebug.TestServerIO
'	Set xDebug= Nothing
'	
'	  -- outro code ---
'
'  2.) mostrar todas as form e query string passados na página
'	Dim xDebug
'
'	Set xDebug= New Debugger
'	xDebug.EndAfterDebug = True
'	xDebug.DumpForm
'	xDebug.DumpQueryStrings
'	Set xDebug= Nothing
'	
'****************************************************
'==========  Fim DOCUMENTACAO  =====================
%>
<script LANGUAGE=JScript RUNAT=SERVER>
function JSScriptEngine() {
	Response.Write
		(
			String.fromCharCode(9) + "<B>" + ScriptEngine() + "</B>" + 
			String.fromCharCode(13,10) + String.fromCharCode(9) + 
			String.fromCharCode(9) + ScriptEngineMajorVersion() + "." + 
			ScriptEngineMinorVersion() + "." + ScriptEngineBuildVersion() + 
			String.fromCharCode(13,10) + String.fromCharCode(13,10)
		 );
}
</SCRIPT>
<%
Class Debugger

	'####################################
	'#	  Public Class Properties	 #
	'####################################

	Public EndAfterDebug



	'####################################
	'#	  Public Class Methods		#
	'####################################

	Public Sub DumpASPProperties()
		'passar por cada propriedade DE objeto e imprimi-los.
		Response.Write("<PRE STYLE=""background-color:#FFFFEE;font-size:11pt;"">")
		Response.Write("<BIG>Session Propriedades</BIG>" & vbCrLf)

		'para facilitar os resultados e eliminar a duplicação de código,
		'gerando uma seqüência de código e, em seguida, executar a 
								'string usando procedure Execute que é construída em VBScript

		Execute ExecForASPProp("Session.CodePage")
		Execute ExecForASPProp("Session.LCID")
		Execute ExecForASPProp("Session.SessionID")
		Execute ExecForASPProp("Session.Timeout")
		Response.Write("</PRE>")
		Response.Write("<PRE STYLE=""background-color:#FFFFEE;font-size:11pt;"">")
		Response.Write("<BIG>Propriedades Server</BIG>" & vbCrLf)
		Execute ExecForASPProp("Server.ScriptTimeout")
		Response.Write("</PRE>")
		Response.Write("<PRE STYLE=""background-color:#FFFFEE;font-size:11pt;"">")
		Response.Write("<BIG>Response Properties</BIG>" & vbCrLf)
		Execute ExecForASPProp("Response.Buffer")
		Execute ExecForASPProp("Response.CacheControl") 
		Execute ExecForASPProp("Response.Charset")
		Execute ExecForASPProp("Response.ContentType")
		Execute ExecForASPProp("Response.Expires")
		Execute ExecForASPProp("Response.ExpiresAbsolute")
		Execute ExecForASPProp("Response.IsClientConnected")
		Execute ExecForASPProp("Response.Status")
		Response.Write("</PRE>")
		Response.Write("<PRE STYLE=""background-color:#FFFFEE;font-size:11pt;"">")
		Response.Write("<BIG>Request Propriedades</BIG>" & vbCrLf)
		Execute ExecForASPProp("Request.TotalBytes")
		Response.Write("</PRE>")
	End Sub

	Public Sub TestServerIO()
		'test FSO I/O server
		Const TestFile1 = "___debugger_tester1.txt"
		Const TestFile2 = "___debugger_tester2.txt"
		Const TestFile3 = "___debugger_tester3.txt"
		Dim oFSO, oFile, sTmp, dblSize

		On Error Resume Next

		Response.Write("<PRE STYLE=""background-color:#FFFFEE;font-size:11pt;"">")
		Response.Write("<BIG>Resultados Teste I/O</BIG>" & vbCrLf)

		Set oFSO = CreateObject("Scripting.FileSystemObject")

		'remove any old test files
		oFSO.DeleteFile Server.Mappath(TestFile1), True
		oFSO.DeleteFile Server.Mappath(TestFile2), True
		oFSO.DeleteFile Server.Mappath(TestFile3), True
		err.clear

		'teste 1.) criar um arquivo teste 
		Set oFile = oFSO.CreateTextFile(Server.MapPath(TestFile1), true)
		If Err Then
			HandlePrintIOErr oFile, oFSO, "Couldn't Create File"
			Err.Clear
			Exit Sub
		End If

		'teste 2.) tentativa de escrever para o arquivo
		oFile.WriteLine "teste linha 1 written"
		If Err Then
			HandlePrintIOErr oFile, oFSO, "Não foi possível gravar no arquivo"
			Err.Clear
			Exit Sub
		End If
		oFile.Close
		Set oFile = Nothing

		'teste 3.) tentar ler a partir do arquivo
		Set oFile = oFSO.OpenTextFile(Server.MapPath(TestFile1), 1, False)
		sTmp = oFile.ReadAll
		If Err Then
			HandlePrintIOErr oFile, oFSO, " Não foi possível ler Do Arquivo"
			Err.Clear
			Exit Sub
		End If
		oFile.Close
		Set oFile = Nothing

		'teste 4.) copier arquivo
		oFSO.CopyFile Server.Mappath(TestFile1), Server.Mappath(TestFile2), True
		If Err Then
			HandlePrintIOErr "", oFSO, "Não foi possível copiar o arquivo"
			Err.Clear
			Exit Sub
		End If

		'testw 5.) mover arquivo
		oFSO.MoveFile Server.Mappath(TestFile2), Server.Mappath(TestFile3)
		If Err Then
			HandlePrintIOErr "", oFSO, " Não foi possível mover o arquivo "
			Err.Clear
			Exit Sub
		End If

		'teste 6.) deletar arquivos
		oFSO.DeleteFile Server.MapPath(TestFile1), True
		oFSO.DeleteFile Server.MapPath(TestFile3), True
		If Err Then
			HandlePrintIOErr "", oFSO, " Não foi possível deletar o arquivo "
			Err.Clear
			Exit Sub
		End If

		Set oFSO = Nothing

		Response.Write("Todos os testes I/O foi concluído com êxito: " & _
			"delete, move, copy, read, write, create")
		Response.Write("</PRE>")
	End Sub

	Public Sub DumpScriptingEngines()
	'recuperar vbscript e jscript scripting engine de dados
		Response.Write("<PRE STYLE=""background-color:#FFFFEE;font-size:11pt;"">")
		Response.Write("<BIG> Informação Scripting Engine </BIG>" & vbCrLf)
		Response.Write( vbTab & "<B>" & ScriptEngine() & "</B>" & vbCrlf & vbTab & vbTab & _
			ScriptEngineMajorVersion() & "." & ScriptEngineMinorVersion() & _
			"." & ScriptEngineBuildVersion() & vbCrLf & vbCrLf)

		'chamada função Jscript para verificar engine info
		Response.Write( JSScriptEngine() )
		Response.Write("</PRE>")
	End Sub

	Public Sub DumpApplication()
		'retorna application contents e staticobjects
		Execute ExecForAppSess("Application")
	End Sub

	Public Sub DumpSession()
		'retorna application contents
		Execute ExecForAppSess("Session")
	End Sub

	Public Sub DumpForm()
		'retorna form collection contents
		Execute ExecForRequest("Form")
	End Sub

	Public Sub DumpQueryStrings()
		'retorna querystrings collection contents
		Execute ExecForRequest("QueryString")
	End Sub

	Public Sub DumpClientCertificates()
		'retorna clientcertificates collection contents
		Execute ExecForRequest("ClientCertificate")
	End Sub

	Public Sub DumpCookies()
		'retorna cookies collection contents
		Execute ExecForRequest("Cookies")
	End Sub

	Public Sub DumpServerVariables()
		'retorna servervariables collection contents
		Execute ExecForRequest("ServerVariables")
	End Sub



	'####################################
	'#	 Class Routines Interna #
	'####################################

	Private Sub HandlePrintIOErr(ByRef oFile, ByRef oFSO, ByVal sMsg)
'no caso de erro I/O, 
		On Error Resume Next

		'exibe a mensagem
		Response.Write("<B> Erro I/O:</B> " & sMsg & vbCrLf)
		If IsObject(oFile) Then
			oFile.Close
		Set oFile = Nothing
		End If

		'release object
		If IsObject(oFSO) Then Set oFSO = Nothing
		Response.Write("</PRE>")
	End Sub

	Private Function ExecForASPProp(byVal propName)
 
		'  response.write(vbTab & "<B> algumasproperty</B>" & vbcrlf) & vbcrlf
		'  response.write(vbTab & vbTab & algumasproperty& vbcrlf & vbcrlf) & vbcrlf

		Dim s
		s = ""
		s = s & "Response.Write(vbTab & ""<B>" & propName & "</B>"" & vbCrLf)" & vbCrLf
		s = s & "Response.Write(vbTab & vbTab & " & propName & " & vbCrLf & vbCrLf)" & vbCrLf
		ExecForASPProp = s
	End Function

	Private Function ExecForRequest(byval sTmpInput)
		Dim s
		s = "Dim Item, SubItem" & vbCrLf
		s = s & "Response.Write(""<PRE STYLE=""""background-color" & _
			":#FFFFEE;font-size:11pt;"""">"")" & vbCrLf
		s = s & "Response.Write(""<BIG> Disponível" & sTmpInput & _
			" Inputs:</BIG>"" & vbCrLf)" & vbCrLf
		s = s & "If Request." & sTmpInput & ".Count > 0 Then" & vbCrLf
		s = s & "For Each Item In Request." & sTmpInput & vbCrLf
		s = s & "If Request." & sTmpInput & "(Item).Count > 1 Then" & vbCrLf
		s = s & "Response.Write(vbTab & ""Request." & sTmpInput & _
			"(""""<B>"" & Item & ""</B>"""")"" & vbCrLf)" & vbCrLf
		s = s & "For Each SubItem In Request." & sTmpInput & "(Item)" & vbCrLf
		s = s & "Response.Write(vbTab & vbTab & SubItem & vbCrLf)" & vbCrLf
		s = s & "Next" & vbCrLf
		s = s & "Response.Write(vbCrLf)" & vbCrLf
		s = s & "Else" & vbCrLf
		s = s & "Response.Write(vbTab & ""Request." & sTmpInput & _
			"(""""<B>"" & Item & ""</B>"""")"" & vbCrLf)" & vbCrLf
		s = s & "Response.Write(vbTab & vbTab & Request." & sTmpInput & _
			"(Item) & vbCrLf)" & vbCrLf
		s = s & "End If" & vbCrLf
		s = s & "Next" & vbCrLf
		s = s & "Response.Write(vbCrLf)" & vbCrLf
		s = s & "Else" & vbCrLf
		s = s & "Response.Write(vbTab & ""No passed " & sTmpInput & _
			" inputs"" & vbCrLf & vbCrLf)" & vbCrLf
		s = s & "End If" & vbCrLf
		s = s & "Response.Write(""</PRE>"")" & vbCrLf
		ExecForRequest = s
	End Function

	Private Function ExecForAppSess(ByVal aspobj)
		' application/session.contents , application/session.staticobjects
		Dim s
		s = ""		
		s = s & "Dim Key" & vbCrLf
		s = s & "Response.Write(""<PRE STYLE=""""background-color:" & _
			"#FFFFEE;font-size:11pt;"""">"")" & vbCrLf
		s = s & "Response.Write(""<BIG>" & aspobj & " Contents</BIG>"" & vbCrLf)" & vbCrLf
		s = s & "If " & aspobj & ".Contents.Count > 0 Then" & vbCrLf
		s = s & "For Each Key in " & aspobj & ".Contents" & vbCrLf
		s = s & "Response.Write( vbTab & """ & aspobj & _
			"(<B>"""""" & Key & """"""</B>)"" & vbCrLf & " & _
			"vbTab & vbTab & server.htmlencode(" & _
			aspobj & "(Key)) & vbCrLf )" & vbCrLf
		s = s & "Next" & vbCrLf
		s = s & "Response.Write(vbCrLf)" & vbCrLf
		s = s & "Else" & vbCrLf
		s = s & "Response.Write(vbTab & ""No " & aspobj & _
			" variables initialized "" & vbCrLf & vbCrLf)" & vbCrLf
		s = s & "End If" & vbCrLf
		s = s & "Response.Write(""</PRE>"")" & vbCrLf
		s = s & "Response.Write(""<PRE STYLE=""""background-color:" & _
			"#FFFFEE;font-size:11pt;"""">"")" & vbCrLf
		s = s & "Response.Write(""<BIG>" & aspobj & _
			" Static Object Contents</BIG>"" & vbCrLf)" & vbCrLf
		s = s & "If " & aspobj & ".StaticObjects.Count > 0 Then" & vbCrLf
		s = s & "For Each Key in " & aspobj & ".StaticObjects" & vbCrLf
		s = s & "Response.Write( vbTab & ""<B>"" & Key & ""</B>"" & vbCrLf & " & _
			"vbTab & vbTab & ""<i>(object)</i>"" & vbCrLf )" & vbCrLf
		s = s & "Next" & vbCrLf
		s = s & "Response.Write(vbCrLf)" & vbCrLf
		s = s & "Else" & vbCrLf
		s = s & "Response.Write(vbTab & ""No " & aspobj & _
			" static objects initialized "" & vbCrLf & vbCrLf)" & vbCrLf
		s = s & "End If" & vbCrLf
		s = s & "Response.Write(""</PRE>"")" & vbCrLf
		ExecForAppSess = s
	End Function

	Private Sub Class_Initialize()
		EndAfterDebug = False
	End Sub

	Private Sub Class_Terminate()
		'Se o usuário tiver escolhido a opção endafterdebug, imprimir uma mensagem e parar Execucao
	If EndAfterDebug Then 
			Response.Write("<PRE STYLE=""background-color:#FFFFEE;font-size:11pt;"">")
			Response.Write("################ ")
			Response.Write("Aplicação Terminada Após Debug ")
			Response.Write("################ ")
			Response.Write("</PRE>")

			'parar execução 
			Response.End
		End If
	End Sub
End Class
'==========  FIM DEFINIÇÃO DA CLASSE  ==================%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

o bom k exibe bastante info...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Excelente!

 

Botei para rodar aqui e deu somente um erro:

 

Microsoft VBScript runtime error '800a000d'

 

Type mismatch: 'server.htmlencode'

 

/debugger.asp, line 0

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.