Сборка .NET выполняется с частичным доверием на сетевом диске, а все остальные - с полным доверием. - PullRequest
3 голосов
/ 28 января 2011

У нас странная проблема с нашим решением C ++ (которое вызывает сборки .NET 4.0) при работе на сетевом диске. Решение содержит несколько служб WCF с NetTcpBinding, один из которых имеет конфигурацию привязки не по умолчанию. NetTcpBinding не по умолчанию сам по себе невозможен при частичном доверии (см. Вопрос переполнения стека Когда WCF NetTcpBinding требуется полное доверие на клиенте? ), но решение работает под полностью доверенный сетевой диск. Это работает на нескольких разных компьютерах (Windows Vista и Windows 7), но не на одном (Windows Vista) с исключением,

Произошла ошибка при создании обработчика раздела конфигурации для "system.serviceModel / bindings": эта сборка не допускает частично доверенных вызывающих. (K: \ Somepath \ Testing.exe. Конфигурация строки 6)

Это исключение было бы вполне нормально, если бы решение действительно работало с частичным доверием на этом компьютере, но оно работало с полным доверием. Даже если я проверю на полное доверие к коду, это правда.

Мы дважды проверили параметры Интернета на одном из компьютеров, на которых он работает - без различий.

Все DLL-файлы и EXE-файлы имеют строгие имена.

Обновление: Сетевой диск полностью доверен конкретному компьютеру (caspol.exe).

Что мы должны искать?

Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.

Обновление 2: У нас все еще есть эта проблема, и теперь даже на одном компьютере больше (Windows 7). Так что, похоже, она не зависит от ОС.

Ответы [ 3 ]

6 голосов
/ 28 января 2011

Это называется защита доступа к коду (CAS) и заставляет все ненадежные сетевые диски обрабатываться как недоверенный сетевой код.

Локальный код имеет полное доверие, сетевой код имеет частичное доверие, а интернет-код не имеет доверия. Это модель безопасности только для .NET. Вы можете либо назначить сетевой диск «доверенным», предоставив ему полные права (поиск caspol.exe сетевой диск с полным доверием), либо скопировать файл EXE на локальный диск.

Использование CASPOL для полного доверия к сетевому ресурсу должно помочь вам.

Или в командной строке:

CasPol.exe -m -pp off -ag 1.2 -url file://///server/share/* FullTrust .
1 голос
/ 26 октября 2011

Мы не нашли здесь решения, но нашли обходной путь: не используйте app.config для настроек привязки. Установка их в коде работает для нас в той же среде.

Кстати, этот вопрос, похоже, решает аналогичную проблему. НТН

0 голосов
/ 26 апреля 2012

Щелкните правой кнопкой мыши app.config -> Свойства -> Разблокировать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...