4

我最近安装了 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));
}

自定义跟踪侦听器非常简单。

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);
        }
    }

这真的很奇怪,因为如果我只是点击刷新它会继续没有任何问题。

任何帮助将不胜感激,谢谢。

4

1 回答 1

0

你有哪个版本的 IIS?如果您使用 IIS 7,请确保将应用程序池类型设置为集成而不是经典。集成管道模式是 IIS 7 特定的。

于 2013-05-16T08:15:19.447 回答