Israel Aéce

Microsoft MVP, MCP, MCAD, MCTS, MCPD e MCT

My Links

Blog Stats

Archives

Post Categories

Links

Login

Client-Side Callbacks e Exceptions

Para aqueles que já trabalharam com Client-Side Callbacks sabem que quando adicionamos a referencia para ele dentro de um evento cliente de um determinado controle, podemos definir uma função, também cliente, que será disparada caso dentro do evento server-side que será executado atire uma excessão.

Só que há um problema neste cenário: se a função server-side que será executada disparar a Exception e o atributo mode do elemento customErrors que está no Web.Config estiver como On ou RemoteOnly (que é o padrão), teu callback nunca trabalhará corretamente, e a seguinte mensagem será passada como argumento para a função de tratamento de erro no cliente:

There was an error in the callback.

Isso ocorre porque quando uma excessão acontece no servidor, a página é modificada, porque o customErrors intercepta o processo e, consequentemente, não devolve ao cliente o que é esperado, ou seja, a mensagem de erro da Exception.

Se você definir o customErrors como Off, o processo resultará com sucesso, mas dependendo da sua estratégia de tratamento de erros, poderá comprometer a aplicação, pois o Off devolve os detalhes do erro para o cliente. Para resolver, talvez será necessário isolar a página que faz o uso do callback em um diretório e, dentro dele, adicionar um novo arquivo Web.Config e sobrescrever o customErrors para Off e tratando todos os pontos da(s) página(s) que podem ocasionar erros com Try.Catch.Finally.

posted on Friday, September 01, 2006 8:37 PM

Feedback

# re: Client-Side Callbacks e Exceptions 9/1/2006 9:07 PM Luis Abreu

hum...se tratares a excepcao e limpares o ultimo erro, o erro ainda ocorre?

# re: Client-Side Callbacks e Exceptions 9/1/2006 9:12 PM Israel Aece

Ola Luis,

Se limpar via ClearError é possível que sim, mas no meu caso eu deixei atirar excessão justamente para tratá-la no cliente.

Title  
Name  
Url
Box Code
Protected by FormShield
Comments