private void InitRequest() { int num2; DataSet ds = _masterRequest.Clone(); DataRow row = this.NewRow(ds, "Trace_Request"); row["Trace_Time_of_Request"] = this._context.Timestamp.ToString("G"); string rawUrl = this._context.Request.RawUrl; int index = rawUrl.IndexOf("?", StringComparison.Ordinal); if (index != -1) { rawUrl = rawUrl.Substring(0, index); } row["Trace_Url"] = rawUrl; row["Trace_Request_Type"] = this._context.Request.HttpMethod; try { row["Trace_Request_Encoding"] = this._context.Request.ContentEncoding.EncodingName; } catch { } if (this.TraceMode == System.Web.TraceMode.SortByCategory) { ds.Tables["Trace_Trace_Information"].DefaultView.Sort = "Trace_Category"; } this.AddRow(ds, "Trace_Request", row); string[] allKeys = this._context.Request.Headers.AllKeys; for (num2 = 0; num2 < allKeys.Length; num2++) { row = this.NewRow(ds, "Trace_Headers_Collection"); row["Trace_Name"] = allKeys[num2]; row["Trace_Value"] = this._context.Request.Headers[allKeys[num2]]; this.AddRow(ds, "Trace_Headers_Collection", row); } ArrayList list = this._context.Response.GenerateResponseHeaders(false); int num3 = (list != null) ? list.Count : 0; for (num2 = 0; num2 < num3; num2++) { HttpResponseHeader header = (HttpResponseHeader)list[num2]; row = this.NewRow(ds, "Trace_Response_Headers_Collection"); row["Trace_Name"] = header.Name; row["Trace_Value"] = header.Value; this.AddRow(ds, "Trace_Response_Headers_Collection", row); } allKeys = this._context.Request.Form.AllKeys; for (num2 = 0; num2 < allKeys.Length; num2++) { row = this.NewRow(ds, "Trace_Form_Collection"); row["Trace_Name"] = allKeys[num2]; row["Trace_Value"] = this._context.Request.Form[allKeys[num2]]; this.AddRow(ds, "Trace_Form_Collection", row); } allKeys = this._context.Request.QueryString.AllKeys; for (num2 = 0; num2 < allKeys.Length; num2++) { row = this.NewRow(ds, "Trace_Querystring_Collection"); row["Trace_Name"] = allKeys[num2]; row["Trace_Value"] = this._context.Request.QueryString[allKeys[num2]]; this.AddRow(ds, "Trace_Querystring_Collection", row); } if (HttpRuntime.HasAppPathDiscoveryPermission()) { allKeys = this._context.Request.ServerVariables.AllKeys; for (num2 = 0; num2 < allKeys.Length; num2++) { row = this.NewRow(ds, "Trace_Server_Variables"); row["Trace_Name"] = allKeys[num2]; row["Trace_Value"] = this._context.Request.ServerVariables.Get(allKeys[num2]); this.AddRow(ds, "Trace_Server_Variables", row); } } this._requestData = ds; }
/* InitRequest * Initialize the given dataset with basic * request information */ private void InitRequest() { // Master request is assumed to be initialized first System.Web.Util.Debug.Assert(_masterRequest != null); DataSet requestData = _masterRequest.Clone(); // request info DataRow row = NewRow(requestData, SR.Trace_Request); row[SR.Trace_Time_of_Request] = _context.Timestamp.ToString("G"); string url = _context.Request.RawUrl; int loc = url.IndexOf("?", StringComparison.Ordinal); if (loc != -1) { url = url.Substring(0, loc); } row[SR.Trace_Url] = url; row[SR.Trace_Request_Type] = _context.Request.HttpMethod; try { row[SR.Trace_Request_Encoding] = _context.Request.ContentEncoding.EncodingName; } catch { // if we get an exception getting the ContentEncoding, most likely // there's an error in the config file. Just ignore it so we can finish InitRequest. } if (TraceMode == TraceMode.SortByCategory) { requestData.Tables[SR.Trace_Trace_Information].DefaultView.Sort = SR.Trace_Category; } AddRow(requestData, SR.Trace_Request, row); // header info try { // AddCollectionToRequestData(requestData, SR.Trace_Headers_Collection, _context.Request.Unvalidated.Headers); } catch { // ---- exceptions when we fail to get the unvalidated collection } // response header info ArrayList headers = _context.Response.GenerateResponseHeaders(false); int n = (headers != null) ? headers.Count : 0; for (int i = 0; i < n; i++) { HttpResponseHeader h = (HttpResponseHeader)headers[i]; row = NewRow(requestData, SR.Trace_Response_Headers_Collection); row[SR.Trace_Name] = h.Name; row[SR.Trace_Value] = h.Value; AddRow(requestData, SR.Trace_Response_Headers_Collection, row); } //form info try { AddCollectionToRequestData(requestData, SR.Trace_Form_Collection, _context.Request.Unvalidated.Form); } catch { // ---- exceptions when we fail to get the unvalidated collection } //QueryString info try { AddCollectionToRequestData(requestData, SR.Trace_Querystring_Collection, _context.Request.Unvalidated.QueryString); } catch { // ---- exceptions when we fail to get the unvalidated collection } //Server Variable info if (HttpRuntime.HasAppPathDiscoveryPermission()) { AddCollectionToRequestData(requestData, SR.Trace_Server_Variables, _context.Request.ServerVariables); } _requestData = requestData; if (HttpRuntime.UseIntegratedPipeline) { // Dev10 914119: When trace is enabled, the request entity is read and no longer // available to IIS. In integrated mode, we have an API that allows us to reinsert // the entity. Although it is expensive, performance is not a concern when // trace is enalbed, so we will reinsert just in case a native handler needs // to access the entity. I decided not to check the current handler, since // that can be changed if someone sets the IIS script map. _context.Request.InsertEntityBody(); } }
/* InitRequest * Initialize the given dataset with basic * request information */ private void InitRequest() { // request info DataRow row = NewRow(_requestData, SR.Trace_Request); row[SR.Trace_Time_of_Request] = _context.Timestamp.ToString("G"); string url = _context.Request.RawUrl; int loc = url.IndexOf("?"); if (loc != -1) { url = url.Substring(0, loc); } row[SR.Trace_Url] = url; row[SR.Trace_Request_Type] = _context.Request.HttpMethod; try { row[SR.Trace_Request_Encoding] = _context.Request.ContentEncoding.EncodingName; } catch { // if we get an exception getting the ContentEncoding, most likely // there's an error in the config file. Just ignore it so we can finish InitRequest. } if (TraceMode == TraceMode.SortByCategory) { _requestData.Tables[SR.Trace_Trace_Information].DefaultView.Sort = SR.Trace_Category; } AddRow(_requestData, SR.Trace_Request, row); // header info int i; String[] keys = _context.Request.Headers.AllKeys; for (i = 0; i < keys.Length; i++) { row = NewRow(_requestData, SR.Trace_Headers_Collection); row[SR.Trace_Name] = keys[i]; row[SR.Trace_Value] = _context.Request.Headers[keys[i]]; AddRow(_requestData, SR.Trace_Headers_Collection, row); } //form info keys = _context.Request.Form.AllKeys; for (i = 0; i < keys.Length; i++) { row = NewRow(_requestData, SR.Trace_Form_Collection); row[SR.Trace_Name] = keys[i]; row[SR.Trace_Value] = _context.Request.Form[keys[i]]; AddRow(_requestData, SR.Trace_Form_Collection, row); } //QueryString info keys = _context.Request.QueryString.AllKeys; for (i = 0; i < keys.Length; i++) { row = NewRow(_requestData, SR.Trace_Querystring_Collection); row[SR.Trace_Name] = keys[i]; row[SR.Trace_Value] = _context.Request.QueryString[keys[i]]; AddRow(_requestData, SR.Trace_Querystring_Collection, row); } //Server Variable info if (HttpRuntime.HasAppPathDiscoveryPermission()) { keys = _context.Request.ServerVariables.AllKeys; for (i = 0; i < keys.Length; i++) { row = NewRow(_requestData, SR.Trace_Server_Variables); row[SR.Trace_Name] = keys[i]; row[SR.Trace_Value] = _context.Request.ServerVariables.Get(keys[i]); AddRow(_requestData, SR.Trace_Server_Variables, row); } } }