Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal Bom dia,
Vou tentar explicar o problema que estou tendo em minha aplicação ASP com Oracle, aplicação móvel utilizado em um Palm Industrial do modelo symbol.
Ao usuário se logar no sistema, automáticamente armazeno o usuario e a senha em cookies para utilizar em conexões que são realizadas conforme transação do usuário.
O Problema que estou tendo é o seguinte: Em um determinado momento os cookies são perdidos, apagados.
Sempre no mesmo momento que ocorre o erro..sempre na 18ª refreshed na página.. pois cada refresh significa a lida de um codigo de barra e consequentemente uma rotina de banco é executada.
Não sei oque pode estar ocorrendo.. Help-me please.
Abraços
Se você continua o tempo todo no mesmo domínio, não era para seus cookies estarem desaparecendo.
Veja se em algum momento, sua página é enviada para um ambiente seguro. Se isso ocorrer, realmente você perderá seus dados, seja em cookies ou session. E não há modo de evitar isso (acredite, já sofri com isso também).
Agora se você não está sendo direcionado para nenhum outro domínio, precisa procurar no seu código o que está causando isso.
Poste ai a parte que ocorre.
é gerado algum erro ????
Segue o erro que ocorre:
HTTP Error 404 - File Or directory not found internet information Services ISS
Help
<html>
<script>
function Confirma(prod,cx)
{
if (confirm("Atenção, existe Nro. de Rastreabilidade mais antigo para este produto. Deseja liberar esta caixa mesmo assim?"))
{
window.location ="Retornar.asp?produto="+prod+"&caixa="+cx+"&confirma=N"
}
else
{
window.location ="index.asp?consulta_produto="+prod;
}
}
function Vazia(cx)
{
window.alert("A caixa "+cx+" não está alocada!");
window.location ="index.asp?consulta_produto="+prod;
//window.location ="[HTTP://WWW.GOOGLE.COM.BR";](http://WWW.GOOGLE.COM.BR)
}
</script>
<body>
<%
dim tipo,produto,rastrea,cx,sql,CMD
rastrea = Request.QueryString("rastrea")
cx = ucase(Request.QueryString("caixa"))
produto=Request.QueryString("produto")
tipo=Request.QueryString("tipo")
dim con
Set con = CreateObject("ADODB.Connection")
con.open = "Provider=MSDaora;Data Source=" & Request.Cookies("myDBConnection")("banco") & ";User Id=" & Request.Cookies("myDBConnection")("user") & ";Password=" & Request.Cookies("myDBConnection")("password") & ";"
if con.state<>1 then
Response.Redirect("../../../principal.asp?erro=Sem conexão com o banco de dados!")
end if
if con.state=1 then
if cx<>"" then
dim rs_vazia
QUERY
set rs_vazia = con.execute(sql)
if Cint(rs_vazia(0))=0 then
Response.Redirect ("index.asp?consulta_produto=" & produto & "")
end if
dim rs_qtde
QUERY
set rs_qtde = con.execute(sql)
if not rs_qtde.EOF then
application("cx_liberada") = "A caixa " & cx & " com " & rs_qtde(0) & " peças "
else
application("cx_liberada") = ""
end if
end if
dim rs_FAC
QUERY
set rs_FAC = con.execute(sql)
if not rs_FAC.EOf then
if Clng(rs_fac(0)) = 0 then
%>
<script>
Confirma("<%=produto%>","<%=cx%>");
</script>
<%
end if
end if
if Request.QueryString("confirma")="N" or (not rs_FAC.EOF and Clng(rs_fac(0))>0) then
QUERY CMD.Execute
if len(CMD.Parameters(3).value)>1 then
session("erro_oracle") = "Erro no comando PRC_LIBERA_CAIXA " & ucase(CMD.Parameters(3).Value)
else
session("erro_oracle") = ""
end if
set CMD = nothing
if session("erro_oracle") = "" then
Response.redirect "index.asp?consulta_produto=" & produto
else
Response.Write session("erro_oracle")
end if
end if
end if
%>
</body>
</html>ERRO NO BROWSER
Realizei teste pelo Firefox e nao tive problema, provavelmente deve ser o browser
>
The page cannot be found
The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.
--------------------------------------------------------------------------------
Please try the following:
Make sure that the Web site address displayed in the address bar of your browser is spelled and formatted correctly.
If you reached this page by clicking a link, contact the Web site administrator to alert them that the link is incorrectly formatted.
Click the Back button to try another link.
HTTP Error 404 - File or directory not found.
Internet Information Services (IIS)
--------------------------------------------------------------------------------
Technical Information (for support personnel)
Go to Microsoft Product Support Services and perform a title search for the words HTTP and 404.
Open IIS Help, which is accessible in IIS Manager (inetmgr), and search for topics titled Web Site Setup, Common Administrative Tasks, and About Custom Error Messages.
Ele não mostra a linha do erro.
No código, as variáveis que abrem recordsets não estão sendo setadas (set rs_FAC = createobject("adodb.recordset")).
Você retirou para postar aqui ou realmente está sem?
O curioso é funcionar no firefox, rs.
verifique o nome da variavel é bom o uso do Option Explicit,onde
Força a declaração (com Dim, Private, Public ou ReDim) de
todas as variáveis usadas no script, antes de serem utilizadas.
Deve ser colocado no script antes de qualquer outra instrução.
Qualquer tentativa de usar uma variável não declarada ocasionará
um erro. A declaração de variáveis antes de usá-las faz com que
o script seja executado mais rapidamente.
Onde você grava o cookie? Onde está essa linha? você limitou o periodo de expiracao?
Onde você grava o cookie? Onde está essa linha? você limitou o periodo de expiracao?
Vamos por parte, o cookie é setado nesta página
Página login.asp
<%
on error resume next
set myDBConnection = createobject("adodb.connection") 'Banco de Dados
dim enviar,usuario,senha
usuario=Request.QueryString("u")
senha=Request.QueryString("p")
if myDBConnection.state=1 then
myDBConnection.close
end if
myDBConnection.ConnectionTimeout = 99999
Response.Cookies("myDBConnection")("banco")="CLONE"
Response.Cookies("myDBConnection")("dns")="desenv"
myDBConnection.Open "DSN=" & Request.Cookies("myDBConnection")("dns"),usuario ,senha
session.Timeout = 90
dim Trans_liberada
'**************** ALGUM ERRO DE BANCO DE DADOS
If Err.Number <> 0 Then
Enviar = Cstr(mid(Err.Description,instr(Err.Description,":")+1))
if instr(Err.Description,"shared") then
Enviar = "O sistema de Banco de Dados está fora do ar."
end if
Enviar = Replace(Enviar,"[Microsoft]","")
Enviar = Replace(Enviar,"Driver Manager","")
Enviar = Replace(Enviar,"[","")
Enviar = Replace(Enviar,"]","")
Response.Redirect("../principal.asp?erro=" & Cstr(Enviar))
End If
If myDBConnection.state Then
dim sql,rs_busca
sql = "Select count(*) From Cs_Usuario_Forms Where upper(Cd_Usuario) = '" & Ucase(usuario) & "'"
set rs_busca = myDBConnection.execute(sql)
if rs_busca(0)>0 then
Response.Cookies("myDBConnection")("user")=usuario
Response.Cookies("myDBConnection")("password")=senha
%>
<script>
window.open("../Principal/Menu.asp?load=S", "_top");
</script>
<%
else
response.Redirect("../principal.asp?erro=Usuário sem acesso às transações do Palm")
end if%>
Realizado isso, eu utilizo o cookie na página Retornar.asp na string de conexão abaixo:
con.open = "Provider=MSDaora;Data Source=" & Request.Cookies("myDBConnection")("banco") & ";User Id=" & Request.Cookies("myDBConnection")("user") & ";Password=" & Request.Cookies("myDBConnection")("password") & ";"
Já tentei sim limitar o periodo de utilização colocando 365 dias, mas não funcionou.
>
Ele não mostra a linha do erro.
No código, as variáveis que abrem recordsets não estão sendo setadas (set rs_FAC = createobject("adodb.recordset")).
Você retirou para postar aqui ou realmente está sem?
O curioso é funcionar no firefox, rs.
Claudio,
Realmente tirei algumas informações para que fosse postada aqui, mas estão todas as querys com set rs_vazia = con.execute(sql).
Em relação o funcionamento no Browser Firefox é o seguinte:
No Palm o Windows é o CE, mas não há firefox para esse Windows e caso tenha algum browser que desconheço me indique para eu testar pois o erro pelo que percebi esta no IE 6 para Windows CE.
Testamos também em outro Windows para Touch Screen(desktop) que é o Windows Embedded mas tb não funcionou, porém esse Windows permite a utilização do Firefox Portable e tive sucesso.
Windows XP com IE 7 funciona corretamente..
Pode estar confuso as informações acima, mas qualquer dúvida post ai..
Abraços e Obrigado
Que estranho isso.
Não tenho certeza, mas veja se tem opera para seu palm. Tem opera para quase todos os aparelhos. Chama-se Mini Opera.
>
Que estranho isso.
Não tenho certeza, mas veja se tem opera para seu palm. Tem opera para quase todos os aparelhos. Chama-se Mini Opera.
OK, vou testar e posto o resultado.
Abraços
dá uma olhada neste link.aspx),talvez possa ajudar
Pessoal,
Dando continuidade ao meu problema, informo o segui..
Para o Palm que utilizo hoje não há versão do mini opera.
Utilizei uma ferramenta para monitorar os processos do IIS, indetifiquei que esta ocorrendo Buffer Overflow c:\windows\system32\inetsrv\w3wp.exe -a \\.\pipe\iisipma8345c01-91c4-4b88-9d5f-37fa436d96a8 -t 20 -ap "DefaultAppPool"
Gostaria de saber se algúém ja teve esse problema?
Abraços
Pessoal,
Sei que não é obrigação de ninguem, I need a Help..
Abraços