<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>surrealization.com</title><link>http://www.surrealization.com/</link><description>Occasionally I come up with something worthwhile</description><generator>Graffiti CMS 1.0 (build 1.0.1.963)</generator><lastBuildDate>Thu, 08 May 2008 06:16:00 GMT</lastBuildDate><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://surrealization.com/rss.aspx" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item><title>Getting Notified When An IIS AppPool Recycles</title><link>http://feedproxy.google.com/~r/surrealization/~3/ULpFWe8jzws/</link><pubDate>Thu, 08 May 2008 06:16:00 GMT</pubDate><guid isPermaLink="false">http://www.surrealization.com/sample-code/getnotifiedwhenapppoolrecycles/</guid><dc:creator>Adam Sills</dc:creator><slash:comments>0</slash:comments><category domain="http://www.surrealization.com/sample-code/">Sample Code</category><description>&lt;p&gt;IIS Application Pool recycling in IIS 6 is a crutch for poorly performing code and is frequently misunderstood and overused. However, if you do have a need to use it and want to minimize the hit of your applications in that AppPool spinning up again on the next request, you can use the following code to determine when it recycles.&lt;/p&gt;
&lt;p&gt;First, you need to configure IIS to enable reporting AppPool recycle events. This is off by default. This can easily be done using WMI and C#:&lt;/p&gt;
&lt;div&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; System;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; System.Collections.Generic;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; System.DirectoryServices;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; System.Linq;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; System.Text;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;namespace&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; LogIISRecycleEvents {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;b&gt;&lt;span style="color: navy;"&gt;WmiUtils&lt;/span&gt;&lt;/b&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; SetLogEventsOnRecycle( RecycleOnEventsTypes types ) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DirectoryEntry rootEntry = &lt;span style="color: blue;"&gt;new&lt;/span&gt; DirectoryEntry( &lt;span style="color: maroon;"&gt;&amp;quot;IIS://localhost/W3SVC&amp;quot;&lt;/span&gt; );&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;foreach&lt;/span&gt;( DirectoryEntry siteEntry &lt;span style="color: blue;"&gt;in&lt;/span&gt; rootEntry.Children ) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt;( siteEntry.SchemaClassName == &lt;span style="color: maroon;"&gt;&amp;quot;IIsApplicationPools&amp;quot;&lt;/span&gt; ) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; siteEntry.Properties[&lt;span style="color: maroon;"&gt;&amp;quot;LogEventOnRecycle&amp;quot;&lt;/span&gt;].Value = (&lt;span style="color: blue;"&gt;int&lt;/span&gt;) types;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; siteEntry.CommitChanges();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; siteEntry.Dispose();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rootEntry.Dispose();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;b&gt;&lt;span style="color: navy;"&gt;Flags&lt;/span&gt;&lt;/b&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;enum&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;RecycleOnEventsTypes&lt;/span&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PrivateMemory = 128,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigChange = 64,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OnDemand = 32,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IsapiUnhealthy = 16,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory = 8,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Schedule = 4,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Requests = 2,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Time = 1,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; None = 0,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; All = PrivateMemory | &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ConfigChange | &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OnDemand | &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IsapiUnhealthy | &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Memory |&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Schedule |&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Requests |&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Time&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;Next you need to listen for these events. I'm not sure whether the IIS WMI provider supports sending WMI Events or not, but I do know it writes entries to the System Event Log. Listening to the System Event Log is easy and all you need to do is wait for the right event to come through:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; System;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; System.Collections.Generic;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; System.Diagnostics;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; System.Linq;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;using&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; System.Windows.Forms;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;namespace&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt; LogIISRecycleEvents {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;b&gt;&lt;span style="color: navy;"&gt;Program&lt;/span&gt;&lt;/b&gt; {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [&lt;b&gt;&lt;span style="color: navy;"&gt;STAThread&lt;/span&gt;&lt;/b&gt;]&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Main() {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WmiUtils.SetLogEventsOnRecycle( RecycleOnEventsTypes.All );&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EventLog log = &lt;span style="color: blue;"&gt;new&lt;/span&gt; EventLog( &lt;span style="color: maroon;"&gt;&amp;quot;System&amp;quot;&lt;/span&gt; );&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; log.EntryWritten += &lt;span style="color: blue;"&gt;new&lt;/span&gt; EntryWrittenEventHandler( log_EntryWritten );&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; log.EnableRaisingEvents = &lt;span style="color: blue;"&gt;true&lt;/span&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;span style="color: navy;"&gt;Console&lt;/span&gt;&lt;/b&gt;.WriteLine( &lt;span style="color: maroon;"&gt;&amp;quot;Press enter to finish&amp;quot;&lt;/span&gt; );&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;span style="color: navy;"&gt;Console&lt;/span&gt;&lt;/b&gt;.ReadLine();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; log.Close();&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; log_EntryWritten( &lt;span style="color: blue;"&gt;object&lt;/span&gt; sender, EntryWrittenEventArgs e ) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;if&lt;/span&gt;( e.Entry.Source == &lt;span style="color: maroon;"&gt;&amp;quot;W3SVC&amp;quot;&lt;/span&gt; &amp;amp;&amp;amp; e.Entry.EventID == 1075 &amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.Entry.EntryType == EventLogEntryType.Information &amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.Entry.Message.Contains( &lt;span style="color: maroon;"&gt;&amp;quot;worker process&amp;quot;&lt;/span&gt; ) &amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.Entry.Message.Contains( &lt;span style="color: maroon;"&gt;&amp;quot;recycle&amp;quot;&lt;/span&gt; ) ) {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;span style="color: navy;"&gt;Console&lt;/span&gt;&lt;/b&gt;.WriteLine( &lt;span style="color: maroon;"&gt;&amp;quot;AppPool has recycled!&amp;quot;&lt;/span&gt; );&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style="font-size: 10pt;"&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;Finally, you may have to change what criteria you're searching the EventLogEntry for. As you can see I'm looking at Event Type, Event ID and looking for certain words in the message to indicate the AppPool has recycled. You could use regular expressions to find the specific AppPool name as well.&lt;/p&gt;
&lt;p&gt;What to do with this? Create a WebRequest and request your application's default web page and that will force the application to spin up and the next user to your site won't have to wait.&lt;/p&gt;</description><feedburner:origLink>http://www.surrealization.com/sample-code/getnotifiedwhenapppoolrecycles/</feedburner:origLink></item><item><title>I Sold a Dream Last Night</title><link>http://feedproxy.google.com/~r/surrealization/~3/vJmY1FHUSgU/</link><pubDate>Wed, 14 Feb 2007 02:49:37 GMT</pubDate><guid isPermaLink="false">http://www.surrealization.com/blog/i-sold-a-dream-last-night/</guid><dc:creator>Adam Sills</dc:creator><slash:comments>0</slash:comments><category domain="http://www.surrealization.com/blog/">Blog</category><description>&lt;p&gt;&lt;font face="Arial"&gt;Everyone wants to play an instrument when they're young. In elementary school I tried to play the tumpet and failed. They moved me onto the trombone because it would be easier for me to play. I swtiched, but I wasn't too thrilled about playing it (I wanted the cool saxophone but they wouldn't let me) and after a year I realized it wasn't for me.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Arial"&gt;In high school I had some guitarist friends and decided to learn to play. I got a $200 used guitar and an amp and started to play. I learned all the standard beginner songs and eventually realized I was neither good nor did I really want to keep learning how to play. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Arial"&gt;In college I went to clubs and parties and had a couple DJ friends. I really enjoyed using their tables when they weren't so a few years ago I bought my own. I got a ton of records and set up my turntables and mixer and started to learn how to use them. As it turns out, one of the reasons I've quit so many musical instruments is that I'm tone deaf. As that turns out, not being tone deaf is a requirement to play any sort of musical instrument.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Arial"&gt;After two years of being locked away in a closet, I decided to list my turntables for sale on Craigslist. I priced out new models of what I had and then cut the price in half. Within hours I had a ton of people interested in buying my barely used, incredibly cheap turntable mix setup.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Arial"&gt;Last night the first person to come to my apartment and look at them bought them. He seemed pretty amazed at the condition they're in and the price I was asking so pretty quickly said he wanted to buy them from me. He said he plays guitar and drums and he enjoys using his friends' turntables and wanted his own. I thought I'd feel guilty about selling them since it was a dream of mine, but I am glad I sold them to someone who will actually be able to use them.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Arial"&gt;Anyway, now I get to buy myself a couple 20+ inch LCD monitors for my desktop PC to use in place.&lt;/font&gt;&lt;/p&gt;</description><feedburner:origLink>http://www.surrealization.com/blog/i-sold-a-dream-last-night/</feedburner:origLink></item><item><title>Elevensies: this morning was a good morning</title><link>http://feedproxy.google.com/~r/surrealization/~3/UZ7cnA6Agw8/</link><pubDate>Mon, 11 Sep 2006 21:44:15 GMT</pubDate><guid isPermaLink="false">http://www.surrealization.com/blog/elevensies-this-morning-was-a-good-morning/</guid><dc:creator>Adam Sills</dc:creator><slash:comments>0</slash:comments><category domain="http://www.surrealization.com/blog/">Blog</category><description>&lt;p&gt;My wife made a Lord of the Rings joke this morning.&lt;/p&gt; &lt;p&gt;(sort of quote)&lt;br /&gt;"I packed a ton of food because I didn't eat breakfast. I'll have second breakfast and elevensies."&lt;/p&gt; &lt;p&gt;I think I may have won her over.&lt;/p&gt;</description><feedburner:origLink>http://www.surrealization.com/blog/elevensies-this-morning-was-a-good-morning/</feedburner:origLink></item><item><title>Windows Server 2003 SP1 KB FIX</title><link>http://feedproxy.google.com/~r/surrealization/~3/y9XDvj45Wt0/</link><pubDate>Fri, 28 Jul 2006 22:51:10 GMT</pubDate><guid isPermaLink="false">http://www.surrealization.com/blog/windows-server-2003-sp1-kb-fix/</guid><dc:creator>Adam Sills</dc:creator><slash:comments>1</slash:comments><category domain="http://www.surrealization.com/blog/">Blog</category><description>&lt;p&gt;Well, my first reporting of a bug to Microsoft (via the phone, through product support services) has finally resulted in a KB article.&lt;/p&gt; &lt;p&gt;&lt;a href="http://support.microsoft.com/kb/913548/"&gt;http://support.microsoft.com/kb/913548/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I submitted this bug to Microsoft on November of 2005 and it finally made a public KB article on June 1 of 2006. At least this was a relatively minor issue.&lt;/p&gt;</description><feedburner:origLink>http://www.surrealization.com/blog/windows-server-2003-sp1-kb-fix/</feedburner:origLink></item><item><title>Tom, James, and Adam vs. the UPS truck</title><link>http://feedproxy.google.com/~r/surrealization/~3/AZtjJVqsBbE/</link><pubDate>Wed, 19 Jul 2006 08:05:11 GMT</pubDate><guid isPermaLink="false">http://www.surrealization.com/blog/tom-james-and-adam-vs-the-ups-truck/</guid><dc:creator>Adam Sills</dc:creator><slash:comments>0</slash:comments><category domain="http://www.surrealization.com/blog/">Blog</category><description>&lt;p&gt;I wrote this years ago when I had my weblog hosted through Blogger. Some recent conversations reminded me of it so I decided to bring it back. I call these stories "Tom Stories". Tom is that crazy-ass person you were friends with in high school that always seemed to prompt you into doing some incredibly stupid things. Following is the first ever Tom Story I wrote, unedited from my first posting of it.&lt;/p&gt; &lt;p&gt;We were in ninth grade (James was in tenth), it was an afternoon nearing summer, immediately after school was over. Tom, James and I always met outside a certain door and walked home. Typically we walked James home, then Tom and I went back to one of our houses and played video games until dinner time.&lt;/p&gt; &lt;p&gt;Well this was a day when it didn't happen exactly like that. &lt;/p&gt; &lt;p&gt;Tom, James and I met outside the high school just like usual. We always took a shortcut through someone's yard, which put us at the end of a dead-end street, at least 25 seconds ahead of all the kids who walked around the house and down another street. We were smarter than they were.&lt;/p&gt; &lt;p&gt;Anyway, while walking down the street, talking our kid talk, and me trying to sing a song and getting made fun of because I cannot change the inflection in my voice while singing, we spot a grand opportunity. About three houses down the street was a UPS truck parked on the side of the road. There was an incredibly short man delivering a package to the house the truck was parked in front of. I mean short. This guy was n't any bigger than five foot one, maybe not even that. Anyway, he had just started walking back to the truck when we started running for the truck. I don't know who said to do it, or even if any of us said anything, but we did it. If it were a movie, the scene would be: "the three boys all looked at each other, knowing the others thoughts, nodded, and started running." &lt;/p&gt; &lt;p&gt;By some uncanny timing we reached the truck just moments after he got in, so he hadn't been able to see us in his mirrors. We tried to figure out who would go where, so I just jumped on the right side of the truck. I grabbed my backpack, secured it, then grabbed the bar on the side of the truck. James got on the left side, and Tom got in the middle where the handle is to open the back door. Right after we all secured ourselves, we giggled, knowing how fun this was about to be. &lt;/p&gt; &lt;p&gt;Then the truck started moving.&lt;/p&gt; &lt;p&gt;We all were hanging on for dear life. Somebody said, "this is too fast!", or possibly it was a thought of mine I misinterpreted as someone else speaking, I'm not sure. Either way, it really was too fast. Only about ten seconds and fifteen miles per hour go by and that's when I notice James flying through the air. In retrospect, time had slowed down, I can see him slipping and slowly moving one leg off the truck and attempting to jump to control his fall. Well, he succeeded in one of his goals, but controlling the fall was completely impossible. Time speeds back up and James' feet land on the ground, then his chin is the next thing to hit. He fell over like a tree after it gets cut down. No bending, just rigid straightness, then a bounce or two. &lt;/p&gt; &lt;p&gt;I was completely stunned. I just saw my friend fall off of a moving vehicle, hit his head on the ground, and not move afterwards. I was a bit worried. I quit worrying about James and worked on tightening my grip. I had my arm worked through the bar, so I wasn't going anywhere. &lt;/p&gt; &lt;p&gt;Unfortunately all my grip-strengthening made me miss half of Tom's jump. Time slowed down again, and I looked back just as he was in mid-air, posing for his crowd. He had jumped off in real superman style, one arm up in the air, the other back, one leg bent and the knee up in the air, and the other leg bent backwards. Sort of like an exaggerated running position, but completely lacking of grace. I watched Tom sail in the air for what seemed like minutes. I watched him fly, and I saw the glint in his eye as he marvelled in his greatness.&lt;/p&gt; &lt;p&gt;Time sped back up, and Tom fell also. His feet hit first, and unlike James, Tom thought to put his arms out to catch himself. His arms out, he fell, then smacked his head after his arms buckled. Tom bounced slightly less than James, and I held on to the truck for dear life. I just watched two of my friends beaten by the UPS truck, and I was not about to let myself be beaten. &lt;/p&gt; &lt;p&gt;By now the truck had gone maybe two hundred feet, and apparently the driver saw two limp bodies in the road directly behind his truck, and he slowed very fast. He was almost to a stop when I jumped off and ran towards Tom and James. As I ran I saw the UPS truck driver speed off, probably not wanting to take credit for puting down two high school kids with his truck. As I got near my friends Tom was just starting to stir, and he was laughing a bit. Tom helped James get up and I saw James' face bleeding. Tom pointed it out and James wiped his face with his biker leather jacket. &lt;/p&gt; &lt;p&gt;Not knowing what to do, and not seeing anyone around who witnessed our UPS truck horror, we started to walk towards James' house. Needing an explanation, Tom and James came up with a great one: they were running around while walking home and ran into each other and fell down. It was so dumb it was almost believable. I wanted to protest, but it wasn't me who got hurt so I let them make up whatever story they wanted to. We were only a few minutes from James' house when Tom stopped his hysterical laughter. He hadn't stopped laughing the whole walk home, and finally he did and proclaimed "my arm hurts". &lt;/p&gt; &lt;p&gt;Tom was done laughing, we were a block from James' house, James had blood all over his jacket and his chin was bleeding profusely, then the middle school track team ran past us. They stared. Tom was clutching his arm, James' chin was bleeding, and I was just sort of tailing them both. "Yes I'm bleeding!" James proclaimed. The track team stared at us as they ran past, and I looked down hoping I didn't know anybody. &lt;/p&gt; &lt;p&gt;Tom and I dropped James off, then walked a while and parted ways as he went to his house and I went to mine. I got home, looked around. It was 4:10 and my mother wasn't home and I didn't have anything to do. I turned on my Super Nintendo, played Street Fighter, and wished I had someone to play it with. Damned UPS truck.&lt;/p&gt;</description><feedburner:origLink>http://www.surrealization.com/blog/tom-james-and-adam-vs-the-ups-truck/</feedburner:origLink></item><item><title>Host the Windows Workflow Foundation Designer In Your Own App</title><link>http://feedproxy.google.com/~r/surrealization/~3/xOpPXfgZ2mo/</link><pubDate>Mon, 19 Jun 2006 20:20:00 GMT</pubDate><guid isPermaLink="false">http://www.surrealization.com/blog/host-the-windows-workflow-foundation-designer-in-your-own-app/</guid><dc:creator>Adam Sills</dc:creator><slash:comments>0</slash:comments><category domain="http://www.surrealization.com/blog/">Blog</category><description>&lt;p&gt;Mostly for my own reference, but &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnlong/html/WFDsgnRehst.asp"&gt;here&lt;/a&gt; is an article on MSDN for hosting the WF design surface in your own application.&lt;/p&gt;</description><feedburner:origLink>http://www.surrealization.com/blog/host-the-windows-workflow-foundation-designer-in-your-own-app/</feedburner:origLink></item><item><title>You Immerged A Lucky Winner</title><link>http://feedproxy.google.com/~r/surrealization/~3/11QrYSdpbMU/</link><pubDate>Wed, 14 Jun 2006 22:54:26 GMT</pubDate><guid isPermaLink="false">http://www.surrealization.com/blog/you-immerged-a-lucky-winner/</guid><dc:creator>Adam Sills</dc:creator><slash:comments>1</slash:comments><category domain="http://www.surrealization.com/blog/">Blog</category><description>&lt;p&gt;Come on now... if you're going to spam me to try and convince me I've won 10 million dollars, at least spell your subject correctly!&lt;/p&gt; &lt;p&gt;&lt;a href="http://files.surrealization.com/postuploads/immerged.jpg"&gt;&lt;img border="0" alt="" src="http://files.surrealization.com/postuploads/immergedsmall.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;</description><feedburner:origLink>http://www.surrealization.com/blog/you-immerged-a-lucky-winner/</feedburner:origLink></item><item><title>ScottGu Article on DLINQ</title><link>http://feedproxy.google.com/~r/surrealization/~3/Xm4B2TSRuzA/</link><pubDate>Tue, 06 Jun 2006 00:11:00 GMT</pubDate><guid isPermaLink="false">http://www.surrealization.com/blog/scottgu-article-on-dlinq/</guid><dc:creator>Adam Sills</dc:creator><slash:comments>0</slash:comments><category domain="http://www.surrealization.com/blog/">Blog</category><description>&lt;p&gt;Scott Guthrie has posted &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/06/04/Using-DLINQ-with-ASP.NET-_2800_Part-2-of-my-LINQ-series_2900_.aspx"&gt;part 2 of&amp;nbsp;a series of&amp;nbsp;postings on LINQ&lt;/a&gt;. This one gets into DLINQ specifically and definitely starts to show off some of the reasons why you'd want to use it (iterating over your own object collection is neat and all, but doing SQL queries in code without SQL and System.Data is a spectacular demonstration).&lt;/p&gt;
&lt;p&gt;I'd &lt;a href="http://blog.surrealization.com/archive/2006/05/15/ScottGuArticleonLINQ.aspx"&gt;still like&lt;/a&gt; to see more of the nuts and bolts of how to enable LINQ on your own custom objects, however.&lt;/p&gt;</description><feedburner:origLink>http://www.surrealization.com/blog/scottgu-article-on-dlinq/</feedburner:origLink></item><item><title>When Your MSIs Just Won't Uninstall</title><link>http://feedproxy.google.com/~r/surrealization/~3/fTWRTarncSY/</link><pubDate>Wed, 24 May 2006 22:39:00 GMT</pubDate><guid isPermaLink="false">http://www.surrealization.com/blog/when-your-msis-just-won-t-uninstall/</guid><dc:creator>Adam Sills</dc:creator><slash:comments>0</slash:comments><category domain="http://www.surrealization.com/blog/">Blog</category><description>Mostly for my own reference, but if you're in a situation where you have an MSI that says it is uninstalled successfully but still leaves a good deal of files on your machine, Microsoft has a &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;290301"&gt;tool&lt;/a&gt; to help clean up the Windows Installer configuration.</description><feedburner:origLink>http://www.surrealization.com/blog/when-your-msis-just-won-t-uninstall/</feedburner:origLink></item><item><title>ScottGu Article on LINQ</title><link>http://feedproxy.google.com/~r/surrealization/~3/SqV2rhiewzA/</link><pubDate>Mon, 15 May 2006 22:31:00 GMT</pubDate><guid isPermaLink="false">http://www.surrealization.com/blog/scottgu-article-on-linq/</guid><dc:creator>Adam Sills</dc:creator><slash:comments>0</slash:comments><category domain="http://www.surrealization.com/blog/">Blog</category><description>&lt;p&gt;Scott Guthrie has &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/05/14/446412.aspx"&gt;the best article I've seen so far on LINQ&lt;/a&gt;&amp;nbsp;so far. He's glossing over how to do some of the fancier stuff such as supporting all this stuff in your own objects (so instead of just a List and arrays), but overall the article demonstrates LINQ incredibly well.&lt;/p&gt;</description><feedburner:origLink>http://www.surrealization.com/blog/scottgu-article-on-linq/</feedburner:origLink></item></channel></rss>
