Подтвердить что ты не робот

Ошибка локальной сборки узла .net с политикой CAS

Мы получаем следующую ошибку загрузки сборки. Сборка загружается из локального пути "C:\Program Files\ASWorx Products\ASWorx\Bin \". Проблема не в старой версии двоичного файла. Проблема возникает, когда мы отправили новый двоичный код по электронной почте. Настройки сборки не изменяются. Как мы можем исправить проблему? Проблема появляется в 32-разрядной машине Win7

File name: 'file:///C:\Program Files\ASWorx Products\ASWorx\Bin\ASConnexDI.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. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.

   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)

   at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)

   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)

   at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark)

   at System.Reflection.Assembly.LoadFrom(String assemblyFile, Evidence securityEvidence)

   at System.Activator.CreateInstanceFromInternal(String assemblyFile, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo)

   at NeST.ICE.IOSystem.DIManager.InitializeDI()
4b9b3361

Ответ 1

От ссылки в сообщении об ошибке:

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

Попробуйте открыть свойства файла и нажав "Разблокировать":

properties window

Ответ 2

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

https://msdn.microsoft.com/en-us/library/dd409252(VS.100).aspx

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

Ответ 4

В дополнение к приведенному выше ответу здесь мое решение проблемы.

Попытка выполнить разблокировку привела к тому, что файл все еще оказался заблокирован.

Итак, я создал новую папку, скопировал файлы с поврежденными файлами и выполнил разблокировку файла по файлу. Удивительно, что флаг удалился по сравнению с тем же действием в исходном местоположении файла. Итак, последний шаг заключался в том, чтобы копировать теперь неблокированные файлы обратно в исходное местоположение. Готово!