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.

Um comentário sobre “Client-Side Callbacks e Exceptions

  1. Muito obrigado, foi o unico lugar que encontrei onde explica como e o porque do problema, alguem que está começando com o asp.net ficaria perdido ao encontrar esse erro !!!

    Mais uma vez Agradeço.

Deixe uma resposta para Thiago Cancelar resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s