Сборка .NET работает в частичном доверии на сетевом диске, но все остальные в полном доверии

StackOverflow https://stackoverflow.com/questions/4827670

Вопрос

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

Произошла ошибка, создавая обработчик секции конфигурации для «System.ServiceModel/Bindings»: эта сборка не позволяет частично доверенным абонентам. (K: somepath testing.exe.config Line 6)

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

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

Все файлы DLL и файл EXE сильны.

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

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

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

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

Это было полезно?

Решение 2

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

Этот Кстати, вопрос, кажется, решает аналогичную проблему. Hth

Другие советы

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

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

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

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

CasPol.exe -m -pp off -ag 1.2 -url file://///server/share/* FullTrust .

Щелкните правой кнопкой мыши на app.config -> свойства -> unpock

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top