вторник, 28 декабря 2010 г.

Request for the permission of type System.Web.AspNetHostingPermission failed

Если вдруг хочется писать....я начинаю писать код.
Вот и недавно при разработке очередного ASP.NET приложения я наткнулся на интересную ситуацию:
при добавлении новой сборки элементов управления в панель,  возникала ошибка связанная с правами выполнения кода в среде .NET.

Ошибка была следующего содержания:
Request for the permission of type 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed. 

В моем случае я добавлял AjaxControlToolkit.dll.

В чем может заключаться ошибка:
1. Если вы пытаетесь добавить сборку с удаленного ресурса в сети, т.е. если параметры безопасности .NET среды не настроены на доверие к данной директории, будет вылетать данная ошибка при добавлении сборки.
2. Если сборка которую вы добавляете является строго типизированной.

Как решается проблема:
В случае 1:

  •  Следует дать права удаленной директории с помощью утилиты caspol.exe: [Drive]:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe -m -ag 1 -url "file:////\\[Имя Компьютера]\[ИмяОбщейПапки]\*" FullTrust -exclusive on
  • Можно не напрягаясь скопировать нужную сборку к себе на компьютер и подключить ее с локального компьютера без нервотрепки.


В случае 2:
Следует добавить данную сборку в Global Assembly Cache c помощью утилиты gacutil.exe:

  • Открываете Visual Studio Command Prompt 
  • Вводите туда  gacutil /i [Полный путь до сборки]
  • Наслаждаетесь

1 комментарий:

objMihail комментирует...
Этот комментарий был удален автором.