* TraceContext.cs: Handle tracing when it is enabled in the config
[mono.git] / mcs / class / System.Web / System.Web / TraceContext.cs
index 1bcef7d2ef972abb0f851ec05cd831082762adf6..f6b7fdc50e1213abb2d5fc87c24fd6616171ba0f 100644 (file)
@@ -73,15 +73,18 @@ namespace System.Web {
         Write(category, msg, error, false);\r
       }\r
 \r
-      [MonoTODO("Save the data into a web dataset directly...")]\r
       private void Write(string category, string msg, Exception error, bool Warning) {\r
-             if (!_Enabled)\r
+             if (!_Enabled && !HttpRuntime.TraceManager.Enabled)\r
                      return;\r
+              if (data == null)\r
+                      data = new TraceData ();\r
              data.Write (category, msg, error, Warning);\r
       }\r
 \r
            internal void SaveData ()\r
            {\r
+                   if (data == null)\r
+                           data = new TraceData ();\r
                   SetRequestDetails ();\r
                   data.AddControlTree ((Page) _Context.Handler);\r
                   AddCookies ();\r
@@ -93,15 +96,15 @@ namespace System.Web {
            \r
           internal void Render (HtmlTextWriter output)\r
           {\r
-                   if (!data_saved)\r
-                           SaveData ();\r
+                  if (!data_saved)\r
+                          SaveData ();\r
                   data.Render (output);\r
           }\r
 \r
           private void SetRequestDetails ()\r
           {\r
                   data.RequestPath = _Context.Request.FilePath;\r
-                  data.SessionID = _Context.Session.SessionID;\r
+                  data.SessionID = (_Context.Session != null ? _Context.Session.SessionID : String.Empty);\r
                   data.RequestType = _Context.Request.RequestType;\r
                   data.RequestTime = _Context.Timestamp;\r
                   data.StatusCode = _Context.Response.StatusCode;\r