Я работаю над приложением ASP.NET, и мы хотим добавить возможность вызова сценария клиента во время некоторых запросов. Поскольку мы не доверяем этому сценарию, мы создаем дочерний AppDomain внутри нашего запроса IIS, который имеет ограниченные разрешения и загружает сборку клиента и сборку Script Runner. Сценарий клиента может делать такие вещи, как изменение описания бизнес-объекта или изменение кода состояния на ошибку, если выполняются определенные критерии. Поскольку изменения настолько разнообразны, я не могу охватить их в одном объекте, который возвращается из вызова метода. По мере запуска скрипта мне нужно изменить значения в объектах внутри запроса, который запустил этот дочерний элемент.Двусторонняя связь между AppDomains внутри запросов IIS
Этот post рекомендует использовать NetNamedPipeBinding, но я все время опасаюсь, что он не подходит для кода, запущенного внутри IIS, где несколько запросов могут выполняться одновременно. Могу ли я настроить новый хост для каждого запроса IIS? Настроить статический хост для всего процесса, а затем использовать конечные точки, чтобы убедиться, что правильный ребенок говорит с правильным запросом? Это правильная технология?
Если это не правильная технология, что это такое? Этот post рассказывает вам, как получить дескриптор родительского AppDomain, но многие из них, похоже, используют mscoree.dll, и, как правило, у меня создалось впечатление, что COM и IIS не смешивались ужасно хорошо. This post рассказывает об уничтожении вашего первоначального AppDomain и создании нового. Возможно, это не обязательно в IIS?
Есть ли способ для дочернего приложения AppDomain эффективно выполнять методы внутри объекта Request, породившего его, и если да, то что это такое?