<Элемент loadFromRemoteSources>

Указывает, должны ли сборки, загруженные из удаленных источников, предоставлять полное доверие в платформа .NET Framework 4 и более поздних версий.

Примечание

Если вы были перенаправлены в эту статью из-за сообщения об ошибке в списке ошибок проекта Visual Studio или ошибки сборки, см. статью "Практическое руководство. Использование сборки из Интернета в Visual Studio".

<Конфигурации>
  <Среды выполнения>
    <loadFromRemoteSources>

Синтаксис

<loadFromRemoteSources
   enabled="true|false"/>  

Элементы и атрибуты

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Атрибуты

Атрибут Описание
enabled Обязательный атрибут.

Указывает, должна ли сборка, загруженная из удаленного источника, предоставлять полное доверие.

атрибут enabled

Значение Описание
false Не предоставляйте полное доверие приложениям из удаленных источников. Это значение по умолчанию.
true Предоставление полного доверия приложениям из удаленных источников.

Дочерние элементы

Отсутствует.

Родительские элементы

Элемент Описание
configuration Корневой элемент в любом файле конфигурации, используемом средой CLR и приложениями .NET Framework.
runtime Содержит сведения о параметрах инициализации среды выполнения.

Комментарии

В платформа .NET Framework 3.5 и более ранних версиях при загрузке сборки из удаленного расположения код в сборке выполняется с частичным доверием с набором предоставления, который зависит от зоны, из которой она загружается. Например, если вы загружаете сборку с веб-сайта, она загружается в зону Интернета и предоставляет набор разрешений Интернета. Другими словами, он выполняется в песочнице Интернета.

Начиная с платформа .NET Framework 4 политика безопасности доступа к коду отключена, а сборки загружаются в полном доверии. Обычно это обеспечит полное доверие сборкам, загруженным с Assembly.LoadFrom помощью метода, который ранее был изолирован. Чтобы предотвратить это, возможность выполнения кода в сборках, загруженных из удаленного источника, по умолчанию отключена. По умолчанию при попытке загрузить удаленную сборку FileLoadException возникает сообщение об исключении, например следующее:

System.IO.FileNotFoundException: Could not load file or assembly 'file:assem.dll' or one of its dependencies. Operation is not supported.
(Exception from HRESULT: 0x80131515)
File name: 'file:assem.dll' --->
System.NotSupportedException: An attempt was made to load an assembly from a network location which would have caused the assembly
to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default,
so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch.

Чтобы загрузить сборку и выполнить его код, необходимо выполнить одно из следующих действий:

  • Явно создайте песочницу для сборки (см. инструкции. Запуск частично доверенного кода в песочнице).

  • Запустите код сборки в полном доверии. Для этого необходимо настроить <loadFromRemoteSources> элемент. Он позволяет указать, что сборки, которые выполняются в более ранних версиях платформа .NET Framework теперь выполняются в полном доверии в платформа .NET Framework 4 и более поздних версиях.

Важно!

Если сборка не должна выполняться в полном доверии, не устанавливайте этот элемент конфигурации. Вместо этого создайте песочницу AppDomain для загрузки сборки.

Атрибут enabled для элемента действует только в том случае, если безопасность доступа к коду <loadFromRemoteSources> (CAS) отключена. По умолчанию политика CAS отключена в платформа .NET Framework 4 и более поздних версиях. Если задано значение enabledtrue, удаленные сборки получают полное доверие.

Если enabled значение не задано true, FileLoadException создается исключение в любом из следующих условий:

  • Поведение песочницы текущего домена отличается от его поведения в платформа .NET Framework 3.5. Для этого требуется отключить политику CAS, а текущий домен не должен быть изолированным.

  • Загружаемая сборка не из MyComputer зоны.

<loadFromRemoteSources> Установка элемента для true предотвращения возникновения этого исключения. Это позволяет указать, что вы не полагаетесь на среду CLR для песочницы загруженных сборок для обеспечения безопасности, и что они могут быть разрешены для выполнения в полном доверии.

Примечания

  • В платформа .NET Framework 4.5 и более поздних версиях сборки в общих папках локальной сети выполняются по умолчанию в полном доверии; вам не нужно включать <loadFromRemoteSources> этот элемент.

  • Если приложение скопировано из Интернета, оно помечается ОС Windows как веб-приложение, даже если находится на локальном компьютере. Вы можете изменить это обозначение, изменив его свойства файла или используя <loadFromRemoteSources> элемент, чтобы предоставить сборке полное доверие. Также можно использовать метод UnsafeLoadFrom, чтобы загрузить локальную сборку, которую операционная система пометила как загруженную из Интернета.

  • Вы можете получить FileLoadException приложение, работающее в приложении виртуального компьютера Windows. Это может произойти при попытке загрузить файл из связанных папок на компьютере размещения. Это также может произойти при попытке загрузить файл из папки, связанной со службами удаленных рабочих столов (службы терминалов). Чтобы избежать исключения, задайте значение enabledtrue.

Файл конфигурации

Этот элемент обычно используется в файле конфигурации приложения, но может использоваться в других файлах конфигурации в зависимости от контекста. Дополнительные сведения см. в статье "Дополнительные неявные способы использования политики CAS: loadFromRemoteSources" в блоге .NET Security.

Пример

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

<configuration>  
   <runtime>  
      <loadFromRemoteSources enabled="true"/>  
   </runtime>  
</configuration>  

См. также раздел