refactor: More consistently use using construct within WebUtil to match other existing code there.
parent
1f4f09ad69
commit
5fafea6631
|
@ -794,172 +794,166 @@ namespace OpenSim.Framework
|
||||||
if (maxConnections > 0 && ht.ServicePoint.ConnectionLimit < maxConnections)
|
if (maxConnections > 0 && ht.ServicePoint.ConnectionLimit < maxConnections)
|
||||||
ht.ServicePoint.ConnectionLimit = maxConnections;
|
ht.ServicePoint.ConnectionLimit = maxConnections;
|
||||||
|
|
||||||
WebResponse response = null;
|
|
||||||
TResponse deserial = default(TResponse);
|
TResponse deserial = default(TResponse);
|
||||||
XmlSerializer deserializer = new XmlSerializer(typeof(TResponse));
|
XmlSerializer deserializer = new XmlSerializer(typeof(TResponse));
|
||||||
|
|
||||||
request.Method = verb;
|
request.Method = verb;
|
||||||
|
|
||||||
MemoryStream buffer = null;
|
MemoryStream buffer = null;
|
||||||
|
|
||||||
if (verb == "POST")
|
try
|
||||||
{
|
{
|
||||||
request.ContentType = "text/xml";
|
if (verb == "POST")
|
||||||
|
|
||||||
buffer = new MemoryStream();
|
|
||||||
|
|
||||||
XmlWriterSettings settings = new XmlWriterSettings();
|
|
||||||
settings.Encoding = Encoding.UTF8;
|
|
||||||
|
|
||||||
using (XmlWriter writer = XmlWriter.Create(buffer, settings))
|
|
||||||
{
|
{
|
||||||
XmlSerializer serializer = new XmlSerializer(type);
|
request.ContentType = "text/xml";
|
||||||
serializer.Serialize(writer, obj);
|
|
||||||
writer.Flush();
|
|
||||||
}
|
|
||||||
|
|
||||||
int length = (int)buffer.Length;
|
buffer = new MemoryStream();
|
||||||
request.ContentLength = length;
|
|
||||||
|
|
||||||
if (WebUtil.DebugLevel >= 5)
|
XmlWriterSettings settings = new XmlWriterSettings();
|
||||||
WebUtil.LogOutgoingDetail(buffer);
|
settings.Encoding = Encoding.UTF8;
|
||||||
|
|
||||||
request.BeginGetRequestStream(delegate(IAsyncResult res)
|
using (XmlWriter writer = XmlWriter.Create(buffer, settings))
|
||||||
{
|
|
||||||
Stream requestStream = request.EndGetRequestStream(res);
|
|
||||||
|
|
||||||
requestStream.Write(buffer.ToArray(), 0, length);
|
|
||||||
requestStream.Close();
|
|
||||||
|
|
||||||
// capture how much time was spent writing
|
|
||||||
tickdata = Util.EnvironmentTickCountSubtract(tickstart);
|
|
||||||
|
|
||||||
request.BeginGetResponse(delegate(IAsyncResult ar)
|
|
||||||
{
|
{
|
||||||
response = request.EndGetResponse(ar);
|
XmlSerializer serializer = new XmlSerializer(type);
|
||||||
Stream respStream = null;
|
serializer.Serialize(writer, obj);
|
||||||
try
|
writer.Flush();
|
||||||
{
|
|
||||||
respStream = response.GetResponseStream();
|
|
||||||
deserial = (TResponse)deserializer.Deserialize(
|
|
||||||
respStream);
|
|
||||||
}
|
|
||||||
catch (System.InvalidOperationException)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
// Let's not close this
|
|
||||||
//buffer.Close();
|
|
||||||
respStream.Close();
|
|
||||||
response.Close();
|
|
||||||
}
|
|
||||||
|
|
||||||
action(deserial);
|
|
||||||
|
|
||||||
}, null);
|
|
||||||
}, null);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
request.BeginGetResponse(delegate(IAsyncResult res2)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
// If the server returns a 404, this appears to trigger a System.Net.WebException even though that isn't
|
|
||||||
// documented in MSDN
|
|
||||||
response = request.EndGetResponse(res2);
|
|
||||||
|
|
||||||
Stream respStream = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
respStream = response.GetResponseStream();
|
|
||||||
deserial = (TResponse)deserializer.Deserialize(respStream);
|
|
||||||
}
|
|
||||||
catch (System.InvalidOperationException)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
respStream.Close();
|
|
||||||
response.Close();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (WebException e)
|
|
||||||
|
int length = (int)buffer.Length;
|
||||||
|
request.ContentLength = length;
|
||||||
|
|
||||||
|
if (WebUtil.DebugLevel >= 5)
|
||||||
|
WebUtil.LogOutgoingDetail(buffer);
|
||||||
|
|
||||||
|
request.BeginGetRequestStream(delegate(IAsyncResult res)
|
||||||
{
|
{
|
||||||
if (e.Status == WebExceptionStatus.ProtocolError)
|
using (Stream requestStream = request.EndGetRequestStream(res))
|
||||||
|
requestStream.Write(buffer.ToArray(), 0, length);
|
||||||
|
|
||||||
|
// capture how much time was spent writing
|
||||||
|
tickdata = Util.EnvironmentTickCountSubtract(tickstart);
|
||||||
|
|
||||||
|
request.BeginGetResponse(delegate(IAsyncResult ar)
|
||||||
{
|
{
|
||||||
if (e.Response is HttpWebResponse)
|
using (WebResponse response = request.EndGetResponse(ar))
|
||||||
{
|
{
|
||||||
using (HttpWebResponse httpResponse = (HttpWebResponse)e.Response)
|
try
|
||||||
{
|
{
|
||||||
if (httpResponse.StatusCode != HttpStatusCode.NotFound)
|
using (Stream respStream = response.GetResponseStream())
|
||||||
{
|
deserial = (TResponse)deserializer.Deserialize(respStream);
|
||||||
// We don't appear to be handling any other status codes, so log these feailures to that
|
}
|
||||||
// people don't spend unnecessary hours hunting phantom bugs.
|
catch (System.InvalidOperationException)
|
||||||
m_log.DebugFormat(
|
{
|
||||||
"[ASYNC REQUEST]: Request {0} {1} failed with unexpected status code {2}",
|
}
|
||||||
verb, requestUrl, httpResponse.StatusCode);
|
}
|
||||||
}
|
|
||||||
|
action(deserial);
|
||||||
|
|
||||||
|
}, null);
|
||||||
|
}, null);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
request.BeginGetResponse(delegate(IAsyncResult res2)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// If the server returns a 404, this appears to trigger a System.Net.WebException even though that isn't
|
||||||
|
// documented in MSDN
|
||||||
|
using (WebResponse response = request.EndGetResponse(res2))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (Stream respStream = response.GetResponseStream())
|
||||||
|
deserial = (TResponse)deserializer.Deserialize(respStream);
|
||||||
|
}
|
||||||
|
catch (System.InvalidOperationException)
|
||||||
|
{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
catch (WebException e)
|
||||||
|
{
|
||||||
|
if (e.Status == WebExceptionStatus.ProtocolError)
|
||||||
|
{
|
||||||
|
if (e.Response is HttpWebResponse)
|
||||||
|
{
|
||||||
|
using (HttpWebResponse httpResponse = (HttpWebResponse)e.Response)
|
||||||
|
{
|
||||||
|
if (httpResponse.StatusCode != HttpStatusCode.NotFound)
|
||||||
|
{
|
||||||
|
// We don't appear to be handling any other status codes, so log these feailures to that
|
||||||
|
// people don't spend unnecessary hours hunting phantom bugs.
|
||||||
|
m_log.DebugFormat(
|
||||||
|
"[ASYNC REQUEST]: Request {0} {1} failed with unexpected status code {2}",
|
||||||
|
verb, requestUrl, httpResponse.StatusCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_log.ErrorFormat(
|
||||||
|
"[ASYNC REQUEST]: Request {0} {1} failed with status {2} and message {3}",
|
||||||
|
verb, requestUrl, e.Status, e.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat(
|
m_log.ErrorFormat(
|
||||||
"[ASYNC REQUEST]: Request {0} {1} failed with status {2} and message {3}",
|
"[ASYNC REQUEST]: Request {0} {1} failed with exception {2}{3}",
|
||||||
verb, requestUrl, e.Status, e.Message);
|
verb, requestUrl, e.Message, e.StackTrace);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
catch (Exception e)
|
// m_log.DebugFormat("[ASYNC REQUEST]: Received {0}", deserial.ToString());
|
||||||
{
|
|
||||||
m_log.ErrorFormat(
|
|
||||||
"[ASYNC REQUEST]: Request {0} {1} failed with exception {2}{3}",
|
|
||||||
verb, requestUrl, e.Message, e.StackTrace);
|
|
||||||
}
|
|
||||||
|
|
||||||
// m_log.DebugFormat("[ASYNC REQUEST]: Received {0}", deserial.ToString());
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
action(deserial);
|
action(deserial);
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat(
|
m_log.ErrorFormat(
|
||||||
"[ASYNC REQUEST]: Request {0} {1} callback failed with exception {2}{3}",
|
"[ASYNC REQUEST]: Request {0} {1} callback failed with exception {2}{3}",
|
||||||
verb, requestUrl, e.Message, e.StackTrace);
|
verb, requestUrl, e.Message, e.StackTrace);
|
||||||
}
|
}
|
||||||
|
|
||||||
}, null);
|
}, null);
|
||||||
}
|
|
||||||
|
|
||||||
int tickdiff = Util.EnvironmentTickCountSubtract(tickstart);
|
|
||||||
if (tickdiff > WebUtil.LongCallTime)
|
|
||||||
{
|
|
||||||
string originalRequest = null;
|
|
||||||
|
|
||||||
if (buffer != null)
|
|
||||||
{
|
|
||||||
originalRequest = Encoding.UTF8.GetString(buffer.ToArray());
|
|
||||||
|
|
||||||
if (originalRequest.Length > WebUtil.MaxRequestDiagLength)
|
|
||||||
originalRequest = originalRequest.Remove(WebUtil.MaxRequestDiagLength);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_log.InfoFormat(
|
int tickdiff = Util.EnvironmentTickCountSubtract(tickstart);
|
||||||
"[ASYNC REQUEST]: Slow request {0} {1} {2} took {3}ms, {4}ms writing, {5}",
|
if (tickdiff > WebUtil.LongCallTime)
|
||||||
reqnum,
|
{
|
||||||
verb,
|
string originalRequest = null;
|
||||||
requestUrl,
|
|
||||||
tickdiff,
|
if (buffer != null)
|
||||||
tickdata,
|
{
|
||||||
originalRequest);
|
originalRequest = Encoding.UTF8.GetString(buffer.ToArray());
|
||||||
|
|
||||||
|
if (originalRequest.Length > WebUtil.MaxRequestDiagLength)
|
||||||
|
originalRequest = originalRequest.Remove(WebUtil.MaxRequestDiagLength);
|
||||||
|
}
|
||||||
|
|
||||||
|
m_log.InfoFormat(
|
||||||
|
"[ASYNC REQUEST]: Slow request {0} {1} {2} took {3}ms, {4}ms writing, {5}",
|
||||||
|
reqnum,
|
||||||
|
verb,
|
||||||
|
requestUrl,
|
||||||
|
tickdiff,
|
||||||
|
tickdata,
|
||||||
|
originalRequest);
|
||||||
|
}
|
||||||
|
else if (WebUtil.DebugLevel >= 4)
|
||||||
|
{
|
||||||
|
m_log.DebugFormat(
|
||||||
|
"[WEB UTIL]: HTTP OUT {0} took {1}ms, {2}ms writing",
|
||||||
|
reqnum, tickdiff, tickdata);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (WebUtil.DebugLevel >= 4)
|
finally
|
||||||
{
|
{
|
||||||
m_log.DebugFormat(
|
if (buffer != null)
|
||||||
"[WEB UTIL]: HTTP OUT {0} took {1}ms, {2}ms writing",
|
buffer.Dispose();
|
||||||
reqnum, tickdiff, tickdata);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1056,11 +1050,6 @@ namespace OpenSim.Framework
|
||||||
"[FORMS]: Exception occured on receiving {0} {1}: {2}{3}",
|
"[FORMS]: Exception occured on receiving {0} {1}: {2}{3}",
|
||||||
verb, requestUrl, e.Message, e.StackTrace);
|
verb, requestUrl, e.Message, e.StackTrace);
|
||||||
}
|
}
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (respStream != null)
|
|
||||||
respStream.Close();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1145,128 +1134,132 @@ namespace OpenSim.Framework
|
||||||
request.Method = verb;
|
request.Method = verb;
|
||||||
MemoryStream buffer = null;
|
MemoryStream buffer = null;
|
||||||
|
|
||||||
if ((verb == "POST") || (verb == "PUT"))
|
try
|
||||||
{
|
{
|
||||||
request.ContentType = "text/xml";
|
if ((verb == "POST") || (verb == "PUT"))
|
||||||
|
|
||||||
buffer = new MemoryStream();
|
|
||||||
|
|
||||||
XmlWriterSettings settings = new XmlWriterSettings();
|
|
||||||
settings.Encoding = Encoding.UTF8;
|
|
||||||
|
|
||||||
using (XmlWriter writer = XmlWriter.Create(buffer, settings))
|
|
||||||
{
|
{
|
||||||
XmlSerializer serializer = new XmlSerializer(type);
|
request.ContentType = "text/xml";
|
||||||
serializer.Serialize(writer, obj);
|
|
||||||
writer.Flush();
|
buffer = new MemoryStream();
|
||||||
|
|
||||||
|
XmlWriterSettings settings = new XmlWriterSettings();
|
||||||
|
settings.Encoding = Encoding.UTF8;
|
||||||
|
|
||||||
|
using (XmlWriter writer = XmlWriter.Create(buffer, settings))
|
||||||
|
{
|
||||||
|
XmlSerializer serializer = new XmlSerializer(type);
|
||||||
|
serializer.Serialize(writer, obj);
|
||||||
|
writer.Flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
int length = (int)buffer.Length;
|
||||||
|
request.ContentLength = length;
|
||||||
|
|
||||||
|
if (WebUtil.DebugLevel >= 5)
|
||||||
|
WebUtil.LogOutgoingDetail(buffer);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (Stream requestStream = request.GetRequestStream())
|
||||||
|
requestStream.Write(buffer.ToArray(), 0, length);
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
m_log.DebugFormat(
|
||||||
|
"[SynchronousRestObjectRequester]: Exception in making request {0} {1}: {2}{3}",
|
||||||
|
verb, requestUrl, e.Message, e.StackTrace);
|
||||||
|
|
||||||
|
return deserial;
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
// capture how much time was spent writing
|
||||||
|
tickdata = Util.EnvironmentTickCountSubtract(tickstart);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int length = (int)buffer.Length;
|
|
||||||
request.ContentLength = length;
|
|
||||||
|
|
||||||
if (WebUtil.DebugLevel >= 5)
|
|
||||||
WebUtil.LogOutgoingDetail(buffer);
|
|
||||||
|
|
||||||
Stream requestStream = null;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
requestStream = request.GetRequestStream();
|
using (HttpWebResponse resp = (HttpWebResponse)request.GetResponse())
|
||||||
requestStream.Write(buffer.ToArray(), 0, length);
|
{
|
||||||
|
if (resp.ContentLength != 0)
|
||||||
|
{
|
||||||
|
using (Stream respStream = resp.GetResponseStream())
|
||||||
|
{
|
||||||
|
XmlSerializer deserializer = new XmlSerializer(typeof(TResponse));
|
||||||
|
deserial = (TResponse)deserializer.Deserialize(respStream);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_log.DebugFormat(
|
||||||
|
"[SynchronousRestObjectRequester]: Oops! no content found in response stream from {0} {1}",
|
||||||
|
verb, requestUrl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (WebException e)
|
||||||
|
{
|
||||||
|
using (HttpWebResponse hwr = (HttpWebResponse)e.Response)
|
||||||
|
{
|
||||||
|
if (hwr != null && hwr.StatusCode == HttpStatusCode.NotFound)
|
||||||
|
return deserial;
|
||||||
|
else
|
||||||
|
m_log.ErrorFormat(
|
||||||
|
"[SynchronousRestObjectRequester]: WebException for {0} {1} {2}: {3} {4}",
|
||||||
|
verb, requestUrl, typeof(TResponse).ToString(), e.Message, e.StackTrace);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (System.InvalidOperationException)
|
||||||
|
{
|
||||||
|
// This is what happens when there is invalid XML
|
||||||
|
m_log.DebugFormat(
|
||||||
|
"[SynchronousRestObjectRequester]: Invalid XML from {0} {1} {2}",
|
||||||
|
verb, requestUrl, typeof(TResponse).ToString());
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
m_log.DebugFormat(
|
m_log.DebugFormat(
|
||||||
"[SynchronousRestObjectRequester]: Exception in making request {0} {1}: {2}{3}",
|
"[SynchronousRestObjectRequester]: Exception on response from {0} {1}: {2}{3}",
|
||||||
verb, requestUrl, e.Message, e.StackTrace);
|
verb, requestUrl, e.Message, e.StackTrace);
|
||||||
|
|
||||||
return deserial;
|
|
||||||
}
|
}
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (requestStream != null)
|
|
||||||
requestStream.Dispose();
|
|
||||||
|
|
||||||
// capture how much time was spent writing
|
int tickdiff = Util.EnvironmentTickCountSubtract(tickstart);
|
||||||
tickdata = Util.EnvironmentTickCountSubtract(tickstart);
|
if (tickdiff > WebUtil.LongCallTime)
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
using (HttpWebResponse resp = (HttpWebResponse)request.GetResponse())
|
|
||||||
{
|
{
|
||||||
if (resp.ContentLength != 0)
|
string originalRequest = null;
|
||||||
|
|
||||||
|
if (buffer != null)
|
||||||
{
|
{
|
||||||
using (Stream respStream = resp.GetResponseStream())
|
originalRequest = Encoding.UTF8.GetString(buffer.ToArray());
|
||||||
{
|
|
||||||
XmlSerializer deserializer = new XmlSerializer(typeof(TResponse));
|
if (originalRequest.Length > WebUtil.MaxRequestDiagLength)
|
||||||
deserial = (TResponse)deserializer.Deserialize(respStream);
|
originalRequest = originalRequest.Remove(WebUtil.MaxRequestDiagLength);
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_log.DebugFormat(
|
|
||||||
"[SynchronousRestObjectRequester]: Oops! no content found in response stream from {0} {1}",
|
|
||||||
verb, requestUrl);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_log.InfoFormat(
|
||||||
|
"[SynchronousRestObjectRequester]: Slow request {0} {1} {2} took {3}ms, {4}ms writing, {5}",
|
||||||
|
reqnum,
|
||||||
|
verb,
|
||||||
|
requestUrl,
|
||||||
|
tickdiff,
|
||||||
|
tickdata,
|
||||||
|
originalRequest);
|
||||||
}
|
}
|
||||||
}
|
else if (WebUtil.DebugLevel >= 4)
|
||||||
catch (WebException e)
|
|
||||||
{
|
|
||||||
using (HttpWebResponse hwr = (HttpWebResponse)e.Response)
|
|
||||||
{
|
{
|
||||||
if (hwr != null && hwr.StatusCode == HttpStatusCode.NotFound)
|
m_log.DebugFormat(
|
||||||
return deserial;
|
"[WEB UTIL]: HTTP OUT {0} took {1}ms, {2}ms writing",
|
||||||
else
|
reqnum, tickdiff, tickdata);
|
||||||
m_log.ErrorFormat(
|
|
||||||
"[SynchronousRestObjectRequester]: WebException for {0} {1} {2}: {3} {4}",
|
|
||||||
verb, requestUrl, typeof(TResponse).ToString(), e.Message, e.StackTrace);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (System.InvalidOperationException)
|
finally
|
||||||
{
|
{
|
||||||
// This is what happens when there is invalid XML
|
|
||||||
m_log.DebugFormat(
|
|
||||||
"[SynchronousRestObjectRequester]: Invalid XML from {0} {1} {2}",
|
|
||||||
verb, requestUrl, typeof(TResponse).ToString());
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
m_log.DebugFormat(
|
|
||||||
"[SynchronousRestObjectRequester]: Exception on response from {0} {1}: {2}{3}",
|
|
||||||
verb, requestUrl, e.Message, e.StackTrace);
|
|
||||||
}
|
|
||||||
|
|
||||||
int tickdiff = Util.EnvironmentTickCountSubtract(tickstart);
|
|
||||||
if (tickdiff > WebUtil.LongCallTime)
|
|
||||||
{
|
|
||||||
string originalRequest = null;
|
|
||||||
|
|
||||||
if (buffer != null)
|
if (buffer != null)
|
||||||
{
|
buffer.Dispose();
|
||||||
originalRequest = Encoding.UTF8.GetString(buffer.ToArray());
|
|
||||||
|
|
||||||
if (originalRequest.Length > WebUtil.MaxRequestDiagLength)
|
|
||||||
originalRequest = originalRequest.Remove(WebUtil.MaxRequestDiagLength);
|
|
||||||
}
|
|
||||||
|
|
||||||
m_log.InfoFormat(
|
|
||||||
"[SynchronousRestObjectRequester]: Slow request {0} {1} {2} took {3}ms, {4}ms writing, {5}",
|
|
||||||
reqnum,
|
|
||||||
verb,
|
|
||||||
requestUrl,
|
|
||||||
tickdiff,
|
|
||||||
tickdata,
|
|
||||||
originalRequest);
|
|
||||||
}
|
|
||||||
else if (WebUtil.DebugLevel >= 4)
|
|
||||||
{
|
|
||||||
m_log.DebugFormat(
|
|
||||||
"[WEB UTIL]: HTTP OUT {0} took {1}ms, {2}ms writing",
|
|
||||||
reqnum, tickdiff, tickdata);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return deserial;
|
return deserial;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue