Web.config, вызывающий ошибку "заблокирован групповой политикой"
Мириада разных настроек web.config всегда была для меня загадкой. Я рад, что Microsoft очистила часть контента, помещенного туда по умолчанию, но все еще вызывает проблемы.
В частности, Visual Studio 2015 размещает следующий раздел в сгенерированном web.config стандартного приложения ASP.NET MVC.
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
Когда я загружаю это приложение на свою общую учетную запись хостинга Plesk на GoDaddy, я получаю следующую ошибку.
Эта программа блокируется групповой политикой. Для получения дополнительной информации обратитесь к системному администратору.
Поддержка GoDaddy полностью не желает и не может оказать какую-либо помощь. Тем не менее, я обнаружил, что если я прокомментирую раздел выше, ошибка исчезнет.
Кто-нибудь знает цель этого блока или почему Microsoft помещает его там? Мое приложение, похоже, работает нормально без него. (Обратите внимание, что мое приложение использует С#, а не VB.)
Ответы
Ответ 1
Поскольку ASP.NET 2 позволяет загружать ваш сайт на ваш хостинг без его компиляции. Затем сайт будет скомпилирован по первоначальному запросу, используя настройки компилятора, как показано в файле web.config. Если вы предварительно скомпилируете свой сайт, но все еще имеете код в папке App_code
, эти параметры будут использованы для компиляции этого кода.
Мне кажется, что на своих серверах отключена компиляция go-daddy, поэтому вредоносный код не может быть вставлен и скомпилирован/выполнен.
Пока вы не используете папку App_code
, и вы предварительно компилируете свой сайт, вы можете удалить раздел web.config
, который вы упомянули.
Для получения дополнительной информации о проверке папки App_code
:
Дополнительные сведения о динамической компиляции проверки ASP.NET:
Ответ 2
<system.codedom>
<!--remove all the contents here-->
</system.codedom>
Удалите все содержимое внутри тега system.codedom
и добавьте
<trust level="Full"/>
внутри тега system.web
<system.web>
<trust level="Full"/>
</system.web>
Ответ 3
Я понимаю, что это немного поздно, но я решил эту проблему, удалив все содержимое элемента. Кажется, что это работает как для предварительной компиляции, так и для других.