Comunicação bidirecional entre AppDomains dentro de solicitações do IIS
Estou trabalhando em um aplicativo ASP.NET e queremos adicionar a capacidade de chamar o script do cliente durante algumas das solicitações. Como não confiamos nesse script, estamos gerando um AppDomain filho dentro de nossa solicitação do IIS que possui permissões limitadas e carregando o assembly do cliente e o Script Runner. O script do cliente pode fazer coisas como alterar a descrição de um objeto de negócios ou alterar um código de status para um erro se determinados critérios forem atendidos. Como as alterações são muito variadas, não posso incluí-las em um único objeto que é retornado de uma chamada de método. Como o script está em execução, preciso alterar valores em objetos dentro da Solicitação que iniciou esse filho.
estepostar recomenda o uso de NetNamedPipeBinding, mas estou preocupado que não seja apropriado para o código em execução no IIS em que várias solicitações possam estar em execução simultaneamente. Eu configuraria um novo host para cada solicitação do IIS? Configure um host estático para todo o processo e use pontos de extremidade para garantir que o filho correto converse com a solicitação correta? Essa é a tecnologia certa?
Se essa não é a tecnologia certa, qual é? estepostar mostra como recuperar o identificador do AppDomain pai, mas muitos deles parecem usar o mscoree.dll, e geralmente fiquei com a impressão de que o COM e o IIS não se misturavam muito bem.Esta postagem fala sobre acabar com seu AppDomain inicial e criar um novo. Talvez isso não seja necessário no IIS?
Existe uma maneira de um AppDomain filho executar eficientemente métodos dentro do objeto Request que o gerou e, em caso afirmativo, o que é?