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

Ошибка структуры ASP.NET

Перейдите в настройки уровня вашего компьютера iis и добавьте

<deployment retail="true" /> 

Как указано в http://msdn.microsoft.com/en-us/library/ms228298.aspx

Создайте новый веб-проект, добавьте метку, а затем следующий код.

protected void Page_Load(object sender, EventArgs e)
{
    Label1.Text = HttpContext.Current.IsDebuggingEnabled.ToString();
}

//Result: true 

Что мне не хватает?

Обновление: Я обновил значение в 64- и 32-разрядных версиях конфигурации машины. На сервере работает IIS7.5. Перезагрузка не помогла.

Обновление 2:

Пройдя через V4 рамки с помощью Reflector, я получаю следующий код.

public bool IsDebuggingEnabled
{
    get
    {
        try
        {
            return CompilationUtil.IsDebuggingEnabled(this);
        }
        catch
        {
            return false;
        }
    }
}

internal static bool IsDebuggingEnabled(HttpContext context)
{
    return MTConfigUtil.GetCompilationConfig(context).Debug;
}

//Here is where I lose whats going on... Either way, if what Yaur said is correct then
//I believe that value is not only useless but dangerously misleading. 
internal static CompilationSection GetCompilationConfig(HttpContext context)
{
    if (!UseMTConfig)
    {
        return RuntimeConfig.GetConfig(context).Compilation;
    }
    return GetConfig<CompilationSection>(context);
}

В любом случае. Я могу подтвердить, что функциональность не работает.

PS: @Yaur - Да, я попытался изменить значение, и мне хорошо знакомы с альтернативами использования этого метода, но дело в том, что этот метод должен упростить развертывание.

4b9b3361

Ответ 1

В соответствии с: http://weblogs.asp.net/scottgu/archive/2006/04/11/442448.aspx, он должен заставить:

<system.web>
  <compilation debug="false">
</system.web>

Перезагрузили ли вы свой сервер? Какой файл machine.config вы редактировали?

Ответ 2

Глядя на HttpContext в рефлекторе, весь этот метод заключается в загрузке значения, найденного в разделе компиляции. Поэтому поставьте так, как предложила матье, и вы должны быть золотыми.
Также (если вам интересно), он будет генерировать исключение, если работает под моно.

из версии 2.0 System.Web:

он вызывает

CompilationUtil.IsDebuggingEnabled(this);

который вызывает

RuntimeConfig.GetConfig(context).Compilation.Debug;

Compilation.Get возвращает

(CompilationSection) this.GetSection("system.web/compilation", typeof(CompilationSection), ResultsIndex.Compilation);

версия 4.0 немного отличается... на основе того, что я могу сказать, выглядит "дополнительный материал" - поддержка многозадачности. Поэтому, если вы настроили таргетинг на .net 4 и установка <compilation debug="false"> не работала, попробуйте выполнить здесь и используйте

<system.web>
    <compilation debug="false" targetFramework="4.0">
</compilation>

вместо