После установки VS 2012 я периодически получаю исключение PlatformNotSupportedException.

Я недавно установил VS 2012 и .net Framework 4.5, и в основном все в порядке, за исключением того, что иногда я получаю сообщение об ошибке: для этой операции требуется режим интегрированного конвейера IIS.

У меня, конечно, есть режим управляемого конвейера: интегрирован в IIS.

protected override void OnLoad(EventArgs e)
{
    var st = new StackTrace(true);
    string message = String.Format("Redirect to url: {0}, Stack Trace:\r\n{1}", url, st);
    Trace.TraceInformation(message);
}

protected void Application_Start(Object sender, EventArgs e)
{
    Trace.Listeners.Add(new OurAspTraceListener(Context));
}

Слушатель Custom Trace довольно прост.

private class OurAspTraceListener : TraceListener
{
    private readonly HttpContext _context;
        public OurAspTraceListener(HttpContext context)
        {
            _context = context;
            _context.Trace.IsEnabled = true;
        }

        public override void Write(string message)
        {
            _context.Trace.Write(message); // it's throwing here.
        }

        public override void WriteLine(string message)
        {
            _context.Trace.Write(message);
        }
    }

Это действительно странно, потому что, если я просто нажму «Обновить», он продолжит работу без каких-либо проблем.

Любая помощь приветствуется, спасибо.


person Tony    schedule 28.12.2012    source источник
comment
Пожалуйста, опубликуйте столько вашего web.config, сколько вам удобно. Особенно элементы времени выполнения и компиляции. Также уточните, какой сервер вы используете. (разработка, iisexpress, локальный iis)   -  person Eric Falsken    schedule 30.03.2013


Ответы (1)


Какая у вас версия IIS? Если вы используете IIS 7, убедитесь, что тип пула приложений установлен как интегрированный, а не классический. Режим интегрированного конвейера специфичен для IIS 7.

person ToXinE    schedule 16.05.2013