Pergunta

Eu tenho uma aplicação web usa um proxy para invocar uma operação em um serviço WCF que retorna dados de um AS400, como as diferentes Regiões de vendas associados às nossas empresas, as lojas diferentes que temos no campo, etc. Estes Vendas regiões e lojas não mudam frequentemente, lojas só são adicionados talvez duas vezes por ano e regiões têm sido o mesmo para um par de anos.

Eu acho que minhas mentiras confusão com InstanceContextMode. Eu só estou retornando uma lista de "Regiões" e "lojas" quando os Invoca cliente procuração getRegions () ou GetStoresForRegion (int regionNumber)

Se eu definir o InstanceContextMode a única e ter as regiões e lojas inicializado e preenchido para antes de qualquer chamada operação de serviço, este vai ajudar de alguma forma? Basicamente, agora, seu fazer uma pesquisa DB em cada chamada, e eu não acho que há uma necessidade.

registos de utilizador assim por diante para aplicação web -> página web app -> tem de carregar suspensa das regiões -> invoca desenvolvedor web proxy para obter regiões ... mas isso está acontecendo quando cada usuário utiliza o aplicativo web de forma basicamente cada vez que um usuário acesso o aplicativo web, o proxy faz uma chamada para o DB, creio que esta é uma loucura e um erro na forma como eu configurar a operação de serviço ou ter eu completamente mal entendido alguma coisa?

Update - Serviço é IIS hospedado, por isso toda esta questão pode ser discutível

Foi útil?

Solução

A melhor recomendação básica prática seria o uso per-call, serviços de instância única. Essa é a mais fácil de criar, sem concorrência pesadelos etc.

MAS:. É claro que cada vez que você chamar o serviço, uma instância de serviço é criado e a infra-estrutura de banco de dados é consultado

Se alguma vez possível, tentar ficar com isso. Tente colocar a lógica de cache no banco de dados -. Se você tiver bastante RAM, a maioria dos dados solicitados com freqüência vai ficar na memória

Ir a um ConcurrencyMode = múltipla em seus serviços WCF faz com que todos os tipos de problemas de simultaneidade para mostrar-se de que você precisa ser extremamente cuidadoso com. Tente evitar isso sempre que possível.

Tente per-call, única instância primeiro e único otimizar Se você realmente precisa!

Marc

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top