如何将ActivityId(GUID)传递给aspx页面

时间:2018-03-21 08:05:13

标签: c# guid nlog global-asax

在Global.asax中,我添加了此方法,因此我可以为每个请求获取GUID

protected void Application_BeginRequest(object sender, EventArgs e)
{
    Trace.CorrelationManager.ActivityId = Guid.NewGuid();
}

我可以将此GUID写入我的NLog文件。

如何将此传递到我的自定义aspx页面(错误页面),以便用户可以发送我的GUID以便我轻松查看错误文件?

在asax.cs文件中,我尝试添加 Page_Load 这个

string _SessionGuid = Trace.CorrelationManager.ActivityId.ToString();

但VS说这个错误虽然我有 System.Diagnostics 参考:

  

错误21' System.Web.TraceContext'不包含的定义   ' CorrelationManager'没有扩展方法' CorrelationManager'   接受类型为#System; Web.TraceContext'的第一个参数。可能   发现(你错过了使用指令或程序集   参考?)C:... \ ErrorPage.aspx.cs

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。

在HomeController我有

42

在ActionResult中这个

public class HomeController : Controller
{
    private readonly string _SessionGuid = 
        Trace.CorrelationManager.ActivityId.ToString();
....
}

发生错误时,我将此代码路由到

中的ErrorController
public ActionResult About()
{
   Session["test"] = _SessionGuid;
   ....
}