Запрос на разрешение типа "System.Web.AspNetHostingPermission" не удался при компиляции веб-сайта в проекте "Сеть или интранет"
Я использую Windows 7 некоторое время, но мне не приходилось работать с определенным устаревшим приложением интрасети с момента моего обновления. К сожалению, это приложение настроено как проект веб-сайта ASP.NET, размещенный на сервере интрасети. Когда я открываю сайт в Visual Studio 2008 и пытаюсь его отладить, я получаю следующую ошибку компилятора:
Запрос на разрешение типа "System.Web.AspNetHostingPermission" не выполнен
Чтобы устранить эту проблему на компьютерах с Windows Vista, я полностью изменил бы уровень доверия для платформы .NET Security Configuration для локальной интрасети (исправлено здесь). Я полагаю, что эта утилита конфигурирования основана на mscorcfg.msc, который, как представляется, от некоторых поверхностных исследований отличается от .NET 2.0 SDK. Я попытался выполнить инструкции из этой статьи поддержки Microsoft, выполнив приведенную ниже команду безрезультатно.
Drive:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe -m -ag 1 -url
"file:////\\computername\sharename\*" FullTrust -exclusive on
В настоящее время у меня на компьютере установлены следующие .NET, ASP.NET и .NET SDK.
- Microsoft.NET Compact Framework 2.0 SP2
- Microsoft.NET Compact Framework 3.5
- Профиль клиента Microsoft.NET Framework 4
- Расширенная версия Microsoft.NET Framework 4
- Многостраничный пакет Microsoft.NET Framework 4
- Microsoft ASP.NET MVC 1.0
- Microsoft ASP.NET MVC 2
- Microsoft ASP.NET MVC 2 - Инструменты Visual Studio 2008
- Microsoft ASP.NET MVC 2 - Инструменты Visual Studio 2010
- Microsoft Windows SDK для Visual Studio 2008.NET Framework Tools - enu
- Microsoft Windows SDK для заголовков и библиотек Visual Studio 2008
- Microsoft Windows SDK для Visual Studio 2008 SDK Reference Assemblies и IntelliSense
- Microsoft Windows SDK для инструментов Visual Studio 2008 SP1
- Microsoft Windows SDK для Visual Studio 2008 с пакетом обновления 1 (SP1) Инструменты Win32
- Microsoft Windows SDK для Windows Server 2008 (6001.18000.367)
Нужно ли устанавливать .NET 2.0 SDK? Я неправильно выдал команду caspol
? Есть ли что-то еще, что мне не хватает?
Ответы
Ответ 1
После некоторого дополнительного копания я наткнулся на сообщение в блоге Аарона Стебнера, в котором Подробная информация о настройке для инструмента конфигурации .NET Framework 2.0. Стебнер подробно описывает, как утилита конфигурации была удалена из распространяемого .NET и помещена только в SDK. Не так уж и много лет назад, но теперь, когда сообщество опирается на новые SDK и только устанавливает распространяемые/компактные версии фреймворка, мы потеряли доступ к .NET Framework 2.0 Configuration Tool.
Официальным ответом Microsoft является Настроить политику безопасности с помощью инструмента политики безопасности доступа к коду (Caspol.exe). К сожалению, эта утилита командной строки не работала для меня. Тем не менее, я не исключаю ошибки пользователя в том, почему это не удалось.
В конечном счете, Стебнер решил мою проблему, потому что он предоставляет установщик Статья DotNetSlackers System.Web.AspNetHostingPermission при доступе к проектам в сети или интранете с использованием Visual Studio 2005, который я перефразировал на шаги ниже.
Чтобы изменить локальную машину Настройки безопасности .NET goto
Пуск > Панель управления > Администрирование > Конфигурация Microsoft.NET Framework 2.0
Полностью разверните Мой компьютер и выберите Политику безопасности выполнения. Справа выберите "Настройка безопасности зоны". Оставьте параметр по умолчанию (внесите изменения на этот компьютер) и нажмите "Далее". Выберите Local Intranet и измените уровень доверия на Full Trust. Затем выберите "Далее", а затем "Готово". Перезагрузите Visual Studio, и все должно быть установлено.
Ответ 2
Попробуйте изменить настройку пула приложений Load User Profile
на True
.
В Windows 7 по умолчанию установлено значение False
. Кажется, что в Windows Vista IIS 7 автоматически устанавливает это для вас.
Ответ 3
эта проблема возникает со мной, и решение было простым, я просто добавляю разрешение для пользователя пула приложений на физические файлы, а затем создаю IISReset и теперь работаю.