Запрос на разрешение типа "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 и теперь работаю.