Comunicación bidireccional entre AppDomains dentro de las solicitudes de IIS
Estoy trabajando en una aplicación ASP.NET, y queremos agregar la capacidad de llamar al script del cliente durante algunas de las solicitudes. Como no confiamos en este script, estamos generando un AppDomain secundario dentro de nuestra solicitud de IIS que tiene permisos limitados, y cargamos tanto el ensamblado del cliente como el ensamblado de Script Runner. El script del cliente puede hacer cosas como cambiar la descripción de un objeto comercial o cambiar un código de estado a un error si se cumplen ciertos criterios. Debido a que los cambios son tan variados, no puedo abarcarlos en un solo objeto que se devuelve de una llamada al método. A medida que se ejecuta el script, lo necesito para alterar los valores en los objetos dentro de la Solicitud que lanzó este elemento secundario.
Estaenviar recomienda usar NetNamedPipeBinding, pero estoy cada vez más preocupado de que no sea apropiado para el código que se ejecuta dentro de IIS donde múltiples solicitudes podrían ejecutarse simultáneamente. ¿Configuraría un nuevo host para cada solicitud de IIS? ¿Configurar un host estático para todo el proceso y luego usar puntos finales para asegurarse de que el niño correcto habla con la solicitud correcta? ¿Es esta la tecnología correcta?
Si esta no es la tecnología correcta, ¿cuál es? Estaenviar le dice cómo recuperar el identificador del dominio de aplicación principal, pero muchos de ellos parecen usar mscoree.dll, y en general tenía la impresión de que COM e IIS no se mezclaban muy bien.Esta publicación habla sobre eliminar su AppDomain inicial y crear uno nuevo. ¿Quizás eso no es necesario en IIS?
¿Hay alguna manera de que un dominio de aplicación secundario ejecute métodos de manera eficiente dentro del objeto Solicitud que lo generó, y si es así, qué es?