Pergunta

Eu tive um problema em que tive um HTML.DropDownList, na minha opinião, que postaria o valor selecionado na primeira vez em que enviei o formulário, mas cada postback subsequente apenas publicaria dados do postback inicial. Por isso, adicionei o Lifestyle = "Transiente" ao elemento componente em que eu havia configurado meu controlador para o Castle Windsor, que corrigiu o problema, mas é claro que os postagens levaram mais tempo, pois um novo controlador estava sendo instanciado por solicitação. Dadas as informações acima, que insight, sugestões ou soluções podem ajudar a determinar minha pergunta original sobre o estilo de vida do controlador? Obrigado por toda a ajuda e apoio!

Foi útil?

Solução

Os controladores MVC são transitórios. Pensando nisso, isso faz sentido por alguns motivos. Primeiro, se uma única instância for usada para atender várias solicitações e se várias solicitações atingirem o mesmo controlador ao mesmo tempo, você experimentará algumas condições de corrida bastante bizarras. Segundo, o HTTP é por sua própria natureza apátrida, e existem pedidos independentemente um do outro. Isso se reflete no estilo de vida transitório dos controladores.

Outras dicas

Transiente, sim, mas por causa do interesse, por que não perwebrequest em vez de transitório? Vi alguns blogs que usam o estilo de vida de Perwebrequest e não consigo pensar em uma razão pela qual não. Alguma resposta?

Eu concordo com Dion. Aterrissou aqui procurando solução para essa mesma pergunta. Parece que PerWebRequest é mais apropriado.

Dependendo de como você integra seu contêiner ao MVC e WebAPI, talvez você não esteja instruindo o Windsor a liberar dependências quando o seu controlador não estiver mais sendo usado.

Se você defini -lo como PerWebRequest, será Libere automaticamente seu controlador e todas as suas dependências quando a solicitação terminar

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