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