Pergunta

Estou a depuração de um serviço de web ASMX que recebe "explosões" de pedidos. ou seja, é provável que o serviço web receberá 100 solicitações assíncronas dentro de cerca de 1 ou 2 segundos. Cada solicitação parece demorar cerca de um segundo para processo (isto é esperado e eu estou bem com esse desempenho). O que é importante, contudo, é que cada pedido é tratado sequencialmente e sem processamento paralelo leva lugares. Eu não quero qualquer processamento de solicitações simultâneas devido aos componentes externos chamados pelo serviço web. Existe alguma maneira eu posso forçar o serviço web para apenas lidar com cada resposta sequencialmente?

Eu vi o atributo maxconnection no machine.config mas isso parece funcionar apenas para conexões de saída, onde, como Desejo acelerador as conexões de entrada.

Por favor note que a refatoração em WCF não é uma opção neste momento no tempo.

Estamos usinng IIS6 no Win2003.

Foi útil?

Solução

Talvez você deve estar na fila os pedidos internamente e processá-los um por um?

Pode causar os clientes a votação para os resultados (se eles ainda precisa deles), mas você deseja obter o gasoduto seqüencial você queria ...

Outras dicas

No IIS7 você pode configurar um limite de conexões permitidas a um web site. você pode usar IIS7?

O que eu fiz no passado é simplesmente colocar uma declaração de bloqueio em torno de qualquer acesso ao recurso externo que eu estava usando. No meu caso, foi um pedaço de código não gerenciado que alegou ser thread-safe, mas que na verdade seria lixo pilha biblioteca C tempo de execução se acessado a partir de mais de um segmento de cada vez.

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