Estava eu trabalhando tranquilamente em uma aplicação de teste para o Windows Azure quando tive a necessidade de criar uma Queue(fila).
Tudo corria na mais perfeita harmonia, já tinha criado algumas filas neste mesmo projeto sem nenhum tipo de problema. O código usado foi copy and paste dos demais e quando compilei o projeto e o resultado foi a tela amarela da morte como na imagem aseguir:
Reparem as mensagens de erro retornadas:
Esta exceção ocorre no método CreateIfNotExist(), que cria a fila caso a mesma não exista. O trecho de código é o seguinte:
Quando crio a fila, passo uma string para referenciar seu nome. O grande problema é que não pode ser qualquer string…
Existem algumas “limitações” na criação de Blobs, Tables e Queues no Azure. Neste caso, o nome referenciado para a fila desobedecia uma das regras de nomeação.
Na versão atual do SDK(1.4), os nomes de Fila devem seguir as seguintes regras:
Se o nome da fila especificada não é um nome válido, o método Criar Fila retorna o código de status 400(Bad Request), juntamente com informações de erro adicionais.
Segue a lista com os Códigos de Erro nos Serviços de Fila:
Para solucionar o erro da minha aplicação, eu simplesmente coloquei o nome da fila como All Lowercase (tudo em minúsculo)!
PS: A grande questão aqui é a mensagem de erro que não deixa claro o motivo da exceção. Não há sinalização de que o nome da fila é o reponsável pelo erro, logo há uma “curva maior” para identificar e tratar o erro.
Twitter: @vitormeriat vitormeriat@gmail.com vitor.pereira@studentpartners.com.br