Необходимо вызвать функцию управляемой сборки из неуправляемого кода(неуправляемой сборки, некоторой .dll на с++). Функция обращается к некоему веб-сервису.
Для связи использую CLR Hosting с помощью mscoree.dll
Вызываю CorBindToRuntimeEx,создаю дефолтный домен, загружаю сборку...
Проблема в том, что в случае, если процесс запускается с сетевого ресурса, дефолтный домен относится к зоне интранет. А для этой зоны (видимо в настройках доменной политики,т.к. в нашем домене это и так работает) установлены какие-то запреты для WebPermissions, которые необходимы для установки соединения с веб-сервисом. Т.е. в случае FullTrust все хорошо, а в случае LocalIntranet получаю "Сбой при запросе разрешения WebPermissions...".
В принципе задача решается, если на сетевой ресурс добавить в конфигурации .NET FullTrust. Но в случае большого кол-ва клиентов устанавливать эти права на каждую машину достаточно проблематично. Нашел, что у домена есть функция SetAppDomainPolicy, но как ей воспользоваться — непонятно(т.е. непонятно, как создать и настроить объект _PolicyLevel из unmanaged с++)
Кто-нибудь решал подобную задачу(вызов управляемой сборки с сетевого ресурса из неуправляемого кода) без копирования сборки на локальный диск? Или может кто знает, какие настройки домена связывают LocalIntranet и WebPermissions?
S>а) ставить fw 3.5 sp1 — там local intranet имеет full trust по умолчанию
Спасибо. Где-то читал про это, но был уверен, что у клиента стоит 3.5sp1. Оказалось, что нет.
S>б) править политики (не обязательно на каждый ресурс).
.Net Configuration? Я про это написал, что на каждой машине не хотелось бы этим заниматься.
Или политики домена? Тогда что конкретно?
Re[3]: CLR Hosting Security Policy, WebPermissions и сетевой