Fórum TIDHTTP - Connection reset by peer #352272
22/01/2008
0
Tenho pesquisado no forum sobre este erro [b:c5c8d61487]EIdSocketError - Socket Error # 10054 Connection reset by peer.[/b:c5c8d61487] encontrei várias opniões porém nada que solucione, a Rotina funciona várias vezes depois começa dar este erro, tenho notado que isso ocorre quando o Site esta lento. Alguém já teve este erro e conseguiu solucionar? Segue abaixo o código [b:c5c8d61487]lembrando que isso roda como serviço do Windows[/b:c5c8d61487].
begin
while not (Terminated) do Begin
C.WaitFor(1000); // 1 segundo
Dec(Timer_Carga_Feriado);
FormHistorico.Memohistorico.Lines.Add(inttostr(Timer_Carga_Feriado));
if Timer_Carga_Feriado = 0 then begin
Try
FormHistorico.Memohistorico.Lines.Add(´Excluindo arquivo :´ + Arqtxt);
DeleteFile((Arqtxt));
EscreveLog(´Iniciada Rotina de Carga de Feriado´);
AssignFile(Arqferia,Arqtxt);
If Not Fileexists(Arqtxt) then
Rewrite(Arqferia,Arqtxt);
DMPrincipal.Qry_Seleciona_UF.Close;
DMPrincipal.Qry_Seleciona_UF.SQL.Clear;
DMPrincipal.Qry_Seleciona_UF.SQL.Add(´Select distinct(sgl_uf)´);
DMPrincipal.Qry_Seleciona_UF.SQL.Add(´from Loja nolock´);
DMPrincipal.Qry_Seleciona_UF.SQL.Add(´where cod_sit_loja_corban <> ´´INA´´´);
DMPrincipal.Qry_Seleciona_UF.SQL.Add(´order by sgl_uf´);
DMPrincipal.Qry_Seleciona_UF.Open;
DMPrincipal.Qry_Seleciona_UF.Last;
DMPrincipal.Qry_Seleciona_UF.First;
While Not DMPrincipal.Qry_Seleciona_UF.Eof do begin
URL := ´´;
URL := ´http://www.febraban.org.br/Arquivo/Servicos/Feriados/feriados_Show.asp?inicio=&ano=2008&UF=´;
URL := URL + Trim(DMPrincipal.Qry_Seleciona_UF.fieldbyname(´SGL_UF´).asstring);
URL := URL + ´¬20¬20¬20¬20¬20¬20¬20¬20&dia=&mes=´;
Html := TStringList.Create;
Html.Text := service1.IDHTTP_Feriado.get(URL);
EscreveLog(´Efetuando Donwload da U.F ´ + DMPrincipal.Qry_Seleciona_UF.fieldbyname(´SGL_UF´).asstring);
FormHistorico.Memohistorico.Lines.Add(´pagina carregada´);
Html.SaveToFile(arqhtml + ´\Feriado_´ + Trim(DMPrincipal.Qry_Seleciona_UF.fieldbyname(´SGL_UF´).asstring) + ´_´ + FormatDateTime(´dd-mm-yyyy´,(Date)) + ´.txt´);
LocArqhtml := arqhtml + ´\Feriado_´ + Trim(DMPrincipal.Qry_Seleciona_UF.fieldbyname(´SGL_UF´).asstring) + ´_´ + FormatDateTime(´dd-mm-yyyy´,(Date)) + ´.txt´;
FormHistorico.Memohistorico.Lines.Add(LocArqhtml);
AssignFile (arq_html, LocArqhtml);
Reset (arq_html);
ReadLn (arq_html,linha);
Continua := True;
while continua do begin
if (Pos(´<td width=´22¬´ class=´style1´>Nome da Camara </td>´,Linha) > 0) then // Pos(´;´,Linha);
continua := False;
ReadLn (arq_html,linha);
end;
while not Eof (arq_html) do begin
if (Pos(´<tr bgcolor=´#F8F8F8´>´,Linha) > 0) or (Pos(´<tr bgcolor=´FFFFFF´>´,Linha) > 0) then begin// Pos(´;´,Linha);
ReadLn (arq_html,linha);
ReadLn (arq_html,linha);
Campo[1] := trim(Linha);
ReadLn (arq_html,linha);
ReadLn (arq_html,linha);
ReadLn (arq_html,linha);
Campo[2] := trim(Linha);
ReadLn (arq_html,linha);
ReadLn (arq_html,linha);
Campo[3] := trim(Linha);
ReadLn (arq_html,linha);
ReadLn (arq_html,linha);
ReadLn (arq_html,linha);
Delete(Linha,1,Pos(Trim(DMPrincipal.Qry_Seleciona_UF.fieldbyname(´SGL_UF´).asstring),Linha)-1);
Campo[4] := Copy(Linha,1,2);
ReadLn (arq_html,linha);
ReadLn (arq_html,linha);
ReadLn (arq_html,linha);
Campo[5] := trim(Linha);
Append(Arqferia);
WriteLn(Arqferia, Campo[4] + ´;´ + BuscaTroca(Campo[5],´´´,´´´´) + ´;´ + Campo[2] + ´;´ + Campo[3] + ´; Permanente´);
For I := 1 to 5 do
Campo[I] := ´´;
end;
ReadLn (arq_html,linha);
End;
CloseFile(Arq_html);
Html.Destroy;
EscreveLog(´Finalizada a U.F ´ + DMPrincipal.Qry_Seleciona_UF.fieldbyname(´SGL_UF´).asstring);
DMPrincipal.Qry_seleciona_uf.next;
End;
CloseFile(Arqferia);
Destino := (ArqProc) + ´\Feriado_Municipal_´ + FormatDateTime(´ddmmyyyy´,Date) + ´.TXT´;
CopyFile(PChar(arqtxt), Pchar(destino),False);
Except
On E: Exception do
Begin
EscreveLog(´Ocorreu erro ´ + E.ClassName + ´ - ´ + E.Message);
FormHistorico.Memohistorico.Lines.Add(´Ocorreu erro ´ + E.ClassName + ´ - ´ + E.Message);
End;
End;
Timer_Carga_Feriado := 900;//3600;
End;
End;
End;
Ferreia2
Curtir tópico
+ 0Posts
22/01/2008
Massuda
Gostei + 0
22/01/2008
Ferreia2
Gostei + 0
23/01/2008
Massuda
Uma possibilidade é ser bug no seu Indy. Nesse caso, atualize seu Indy para a versão mais recente.
Outra possibilidade é seu serviço estar tentando mostrar uma mensagem de erro usando uma janela. Normalmente serviços rodam sem ter alguem logado na máquina, de modo que qualquer popup com mensagem de erro é ´exibido´ numa área invisível. Aparentemente o serviço está travado, mas na verdade ele está esperando alguém dar um clique no OK da janela invisível.
Gostei + 0
23/01/2008
Ferreia2
Eu já havia atualizado o componente Indy.
Não é necessário nenhuma configuração no TIDHTTP?
E se o TIDHTTP fosse criado a cada execução e ao final da execução fosse destruido será que não ajudaria? se essa for uma saida como eu criaria este componente em tempo de execução?
Gostei + 0
19/01/2017
Acom Ltda
Gostei + 0
24/07/2018
Senaquerib Moura
Teria alguma configuração (registro do windows, update necessário...) que poderíamos fazer em uma máquina WINDOWS para que o meu programa pudesse se conectar?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)