void OnDomainUnload (object sender, EventArgs e)
{
if (EDSequence.Count == 0) {
Console.WriteLine ("No enqueue/dequeue sequence recorded.");
return;
}
try {
string filePath = Path.Combine (HttpRuntime.AppDomainAppPath, String.Format ("cache_pq_sequence_{0}.seq", DateTime.UtcNow.ToString ("yyyy-MM-dd_hh-mm-ss")));
var settings = new XmlWriterSettings ();
settings.Indent = true;
settings.IndentChars = "\t";
settings.NewLineChars = "\n";
settings.Encoding = Encoding.UTF8;
using (XmlWriter writer = XmlWriter.Create (filePath, settings)) {
writer.WriteStartDocument (true);
writer.WriteStartElement ("sequence");
foreach (EDSequenceEntry entry in EDSequence) {
writer.WriteStartElement ("entry");
writer.WriteAttributeString ("type", entry.Type.ToString ());
writer.WriteAttributeString ("key", entry.Item.Key.Replace ("\n", "\\n").Replace ("\r", "\\r"));
writer.WriteAttributeString ("absoluteExpiration", entry.Item.AbsoluteExpiration.Ticks.ToString ());
writer.WriteAttributeString ("slidingExpiration", entry.Item.SlidingExpiration.Ticks.ToString ());
writer.WriteAttributeString ("priority", entry.Item.Priority.ToString ());
writer.WriteAttributeString ("lastChange", entry.Item.LastChange.Ticks.ToString ());
writer.WriteAttributeString ("expiresAt", entry.Item.ExpiresAt.ToString ());
writer.WriteAttributeString ("disabled", entry.Item.Disabled.ToString ());
writer.WriteAttributeString ("guid", entry.Item.Guid.ToString ());
writer.WriteEndElement ();
}
writer.WriteEndElement ();
writer.Flush ();
}
} catch (Exception ex) {
Console.WriteLine ("Failed to write enqueue/dequeue sequence file. Exception was caught:\n{0}",
ex);
}
}
#endif