<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Benjamin Day Consulting, Inc.: The Blog</title>
        <link>http://blog.benday.com/Default.aspx</link>
        <description>by Benjamin Day</description>
        <language>en-US</language>
        <copyright>Benjamin Day</copyright>
        <managingEditor>benday@benday.com</managingEditor>
        <generator>Subtext Version 1.9.5.176</generator>
        <image>
            <title>Benjamin Day Consulting, Inc.: The Blog</title>
            <url>http://blog.benday.com/images/RSS2Image.gif</url>
            <link>http://blog.benday.com/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>&amp;quot;Session state is not available in this context&amp;quot; exception accessing ASP.NET Session in PreRequestHandlerExecute event</title>
            <category>C#</category>
            <link>http://blog.benday.com/archive/2008/03/31/23176.aspx</link>
            <description>&lt;p&gt;I'm doing my final preparations today for speaking at &lt;a href="http://www.vslive.com" target="_blank"&gt;VSLive San Francisco 2008&lt;/a&gt; on Wednesday and Thursday.  I went to check one of my demos and code that used to work started throwing an exception.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;System.Web.HttpException was unhandled by user code     &lt;br /&gt;  Message="Session state is not available in this context."      &lt;br /&gt;  Source="System.Web"      &lt;br /&gt;  ErrorCode=-2147467259      &lt;br /&gt;  StackTrace:      &lt;br /&gt;       at System.Web.HttpApplication.get_Session()      &lt;br /&gt;       at UiDesignForTestability.WebUI.Global.InitializeMultiSessionFactoryNHibernate() in C:\code\bendaytfs2\BDC\branches\UiDesignForTestabilityMultiDb\UiDesignForTestability.WebUI\Global.asax.cs:line 24      &lt;br /&gt;       at UiDesignForTestability.WebUI.Global.Application_PreRequestHandlerExecute(Object sender, EventArgs e) in C:\code\bendaytfs2\BDC\branches\UiDesignForTestabilityMultiDb\UiDesignForTestability.WebUI\Global.asax.cs:line 45      &lt;br /&gt;       at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()      &lt;br /&gt;       at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp;amp; completedSynchronously)      &lt;br /&gt;  InnerException: &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;lt;ben:Panic operation="Start" intensity="Extreme" /&amp;gt;&lt;/p&gt;  &lt;p&gt;The offending code was trying to access the ASP.NET Session object from the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.httpapplication.prerequesthandlerexecute.aspx" target="_blank"&gt;PreRequestHandlerExecute&lt;/a&gt; event in my Global.asax.cs.  This exception shouldn't be possible.  In fact, it should be IMPOSSIBLE because according to &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.httpapplication_events.aspx" target="_blank"&gt;the documentation&lt;/a&gt;, AquireRequestState should have fired already.  (Can you tell that I was getting anxious?  Getting on a plane tomorrow and the demos aren't working anymore.  I fixed it but I'm still anxious anyway, actually.)&lt;/p&gt;  &lt;p&gt;Ok.  Well, it turns out that during Global.asax's processing, it fires all the events for each of the HttpHandlers in the pipeline.  Well, not all HttpHandlers implement IRequiresSessionState.  For example, System.Web.Handlers.AssemblyResourceLoader doesn't and that's what was causing the exception when InitializeMultiSessionFactoryNHibernate() was getting called.  &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;        protected void Session_Start(object sender, EventArgs e)     &lt;br /&gt;        {      &lt;br /&gt;            InitializeMultiSessionFactoryNHibernate();      &lt;br /&gt;        } &lt;/p&gt;    &lt;p&gt;        public void Application_PreRequestHandlerExecute(Object sender, EventArgs e)     &lt;br /&gt;        {      &lt;br /&gt;            InitializeMultiSessionFactoryNHibernate();             &lt;br /&gt;        }&lt;/p&gt;    &lt;p&gt;        private void InitializeMultiSessionFactoryNHibernate()     &lt;br /&gt;        {      &lt;br /&gt;            if (Session["NHibernateConfiguration"] == null)      &lt;br /&gt;            {      &lt;br /&gt;                Session["NHibernateConfiguration"] = "UiDesignForTestability";      &lt;br /&gt;            } &lt;/p&gt;    &lt;p&gt;            SessionFacade.ConfigurationName = Session["NHibernateConfiguration"] as string;     &lt;br /&gt;        }&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Well, back on 5/30/2006 at 2:33am, &lt;a href="http://staff.develop.com/ballen/blog/" target="_blank"&gt;Brock Allen&lt;/a&gt; wrote the solution into a comment &lt;a href="http://www.velocityreviews.com/forums/t282576-aspnet-20-session-availability-in-globalasax.html" target="_blank"&gt;here&lt;/a&gt;.  The answer is to check that the current handler implements either IRequiresSessionState or IReadOnlySessionState.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;        public void Application_PreRequestHandlerExecute(Object sender, EventArgs e)     &lt;br /&gt;        {      &lt;br /&gt;            if (Context.Handler is IRequiresSessionState || Context.Handler is IReadOnlySessionState)      &lt;br /&gt;            {      &lt;br /&gt;                InitializeMultiSessionFactoryNHibernate();            &lt;br /&gt;            }            &lt;br /&gt;        }&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Thanks, Brock.  This helped &lt;u&gt;IMMENSELY&lt;/u&gt;.&lt;/p&gt;  &lt;p&gt;Now the real question is why did that code work before?  &lt;/p&gt;  &lt;p&gt;-Ben&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23176.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2008/03/31/23176.aspx</guid>
            <pubDate>Mon, 31 Mar 2008 21:04:53 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23176.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2008/03/31/23176.aspx#feedback</comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23176.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23176.aspx</trackback:ping>
        </item>
        <item>
            <title>Call to IIS-Hosted WCF Service Hangs IIS (well, not exactly)</title>
            <category>C#</category>
            <category>WCF</category>
            <link>http://blog.benday.com/archive/2008/03/20/23175.aspx</link>
            <description>&lt;p&gt;I ran into this problem a couple of days ago.  I'm working on an n-tier application that uses WCF services hosted in IIS under Vista &amp;amp; Windows 2008.  We've got unit tests to test each tier and they were mostly passing. &lt;/p&gt;  &lt;p&gt;We unit test our service code both directly by reference (unhosted) and then unit test them again when they're hosted in IIS.  They worked great when they were unhosted but the hosted ones had intermittent problems.  More and more it looked like IIS was hanging and once the hosted tests started failing, the only way to make them pass again was to restart IIS by running iisreset.  &lt;/p&gt;  &lt;p&gt;A weird thing was that all of these unit tests ran just fine on their own.  They only failed when you ran them with other tests but there wasn't any particular test that failed every time.  The tests would run at normal speed and then one of them would just sit there forever and would eventually time out. Once you got the first failure/timeout, all the rest of the tests would fail, too.  &lt;/p&gt;  &lt;p&gt;&lt;img src="http://blog.benday.com/blogimages/11thHangs/11thTestTimeout.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;Here's the error:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;PeopleManagement.UnitTests.HostedServiceTests.HostedPeopleManagementServiceMembershipSearchFixture.HostedServiceSearchMembershipsByMembershipType threw exception:  System.TimeoutException: The request channel timed out while waiting for a reply after 00:00:59.9990001. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout. ---&amp;gt;  System.TimeoutException: The HTTP request to 'http://localhost/PeopleManagement.IisServiceHost/PeopleManagementService.svc' has exceeded the allotted timeout of 00:01:00. The time allotted to this operation may have been a portion of a longer timeout. ---&amp;gt;  System.Net.WebException: The operation has timed out.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Something about this had the smell of a threading problem.  &lt;/p&gt;  &lt;p&gt;I started discussing this problem with my friend and co-worker, &lt;a href="http://www.reliablesoftware.com/dasblog/default.aspx" target="_blank"&gt;Michael Stiefel&lt;/a&gt;, and he agreed that this sounded like a threading problem.  Once we were both thinking "threading problem", I started thinking about where there's something multi-threaded in this unit test.  The only multi-threaded part is IIS.  Then like a flash of lightning, I noticed that it didn't matter which tests I ran but &lt;u&gt;HOW MANY&lt;/u&gt; I ran.  It was always the 11th test that failed.  Pick any 11 tests -- the first 10 passed and the &lt;u&gt;11th always failed&lt;/u&gt;!&lt;/p&gt;  &lt;p&gt;Then another flash of mental lightning and I realized that I'm probably doing something dumb in my code.  &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Answer: &lt;/strong&gt;My team and I were creating instances of the Service Reference proxies to the WCF service but &lt;strong&gt;we never called Close() on the proxy&lt;/strong&gt;.  (Duh.)&lt;/p&gt;  &lt;p&gt;Since we're writing services that are only HTTP and since HTTP is stateless, it never occurred to me that I'd have any connection to close.  (Nope.  Not true.)  &lt;a href="http://www.reliablesoftware.com/" target="_blank"&gt;Michael Stiefel&lt;/a&gt; dug up this &lt;a href="http://searchwindevelopment.techtarget.com/news/article/0,289142,sid8_gci1305093,00.html?track=NL-462&amp;amp;ad=629871USCA&amp;amp;asrc=EM_NLN_3290922&amp;amp;uid=2448265" target="_blank"&gt;quote from Michele Bustamante&lt;/a&gt;:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Don't forget to close your proxy. If you forget, you will find some interesting results. You will get unexpected behavior and will not know why.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Whew! Ain't that the truth!&lt;/p&gt;  &lt;p&gt;-Ben &lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23175.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2008/03/20/23175.aspx</guid>
            <pubDate>Thu, 20 Mar 2008 12:51:09 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23175.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2008/03/20/23175.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23175.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23175.aspx</trackback:ping>
        </item>
        <item>
            <title>Convert a column data type on the fly with LINQ To SQL</title>
            <link>http://blog.benday.com/archive/2008/03/13/23174.aspx</link>
            <description>&lt;p&gt;I got an email yesterday from a reader with this LINQ To SQL problem.  &lt;/p&gt;  &lt;p&gt;He was working with an existing database and some of the columns in his database weren't the same type as what he wanted to use in his C# classes.  The database column is a string but in the LINQ To SQL entity, they wanted the C# property type to be a long.  When they tried to do it, they got all kinds of errors saying that the type can't be converted on the fly.  &lt;/p&gt;  &lt;p&gt;The solution is to map the column to a private member variable that is the same type as in the database and then provide a public property that wraps that member variable and exposes it as the proper, required type.  Essentially, you're solving the problem by not solving the problem.&lt;/p&gt;  &lt;p&gt;Here's what their database table looks like.  Notice that Longitude and Latitude is stored as an NVARCHAR(4000).&lt;/p&gt;  &lt;p&gt;&lt;img src="http://blog.benday.com/blogImages/BlogPostChangeL2SDataType/ZipCodeInfoTable.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;Here's the class that they wanted to use with LINQ to SQL.  Notice that the Latitude and Longitude properties are of type long.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://blog.benday.com/blogImages/BlogPostChangeL2SDataType/ZipCodeInfoClass.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;Here's the solution.  Add a wrapper property with a private member variable.  &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;[Column(Name = "Latitude", Storage = "m_latitudeAsString")]     &lt;br /&gt;private string m_latitudeAsString; &lt;/p&gt;    &lt;p&gt;public long Latitude     &lt;br /&gt;{      &lt;br /&gt;    get      &lt;br /&gt;    {      &lt;br /&gt;        return Int64.Parse(m_latitudeAsString);      &lt;br /&gt;    }      &lt;br /&gt;    set      &lt;br /&gt;    {      &lt;br /&gt;        m_latitudeAsString = value.ToString();      &lt;br /&gt;    }      &lt;br /&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The key piece here is the [Column] attribute    &lt;br /&gt;[Column(Name = "Longitude", Storage = "m_longitudeAsString")]    &lt;br /&gt;and the column's &lt;strong&gt;Storage&lt;/strong&gt; value.  The Column's Storage value allows you to tell LINQ to SQL to store/retrieve the mapped value from a variable rather than the public property.  So, what we're doing here is using our public Latitude property to handle the data-type conversion logic and wrap access to m_latitudeAsString.  The public Latitude property actually &lt;em&gt;&lt;u&gt;isn't mapped &lt;/u&gt;&lt;/em&gt;to the database.  &lt;/p&gt;  &lt;p&gt;Here's a &lt;a href="http://blog.benday.com/downloads/Linq2SqlResearch20080310.zip"&gt;link to download the sample code&lt;/a&gt;.  In order to make the unit test run, you'll need to edit the connection string in the app.config in the unit test project.  You don't have to create the database schema yourself, you just have to make sure that the database referenced in the connection string exists in your SQL Server.  &lt;/p&gt;  &lt;p&gt;-Ben&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23174.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2008/03/13/23174.aspx</guid>
            <pubDate>Thu, 13 Mar 2008 18:32:42 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23174.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2008/03/13/23174.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23174.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23174.aspx</trackback:ping>
        </item>
        <item>
            <title>Fix: Team Foundation Server Reports broken after upgrade from TFS 2008 Beta 2 to TFS 2008 RTM</title>
            <category>C#</category>
            <category>LINQ To SQL</category>
            <link>http://blog.benday.com/archive/2008/02/26/23173.aspx</link>
            <description>&lt;p&gt;I did an upgrade today from TFS beta2 to RTM.  Everything worked fine except for the reports. &lt;/p&gt;&lt;p&gt;All the reports gave the following error: &lt;/p&gt;&lt;blockquote&gt; &lt;p&gt;“Logon failed. (rsLogonFailed) Logon failure: unknown user name or bad password. (Exception from HRESULT: 0x8007052E)”&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;After a few minutes, the error message has changed over to: &lt;/p&gt;&lt;blockquote&gt; &lt;p&gt;“Logon failed. (rsLogonFailed) The referenced account is currently locked out and may not be logged on to. (Exception from HRESULT: 0x80070775)”&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;The fix came from &lt;a href="http://ozgrant.com/" target="_blank"&gt;Grant Holliday&lt;/a&gt; via &lt;a href="http://www.developmentnow.com/g/115_2006_6_0_0_779316/Visual-Studio-Team-System-reporting-problem-rsLogonFailed.htm" target="_blank"&gt;this link&lt;/a&gt;.  (Thanks, Grant!) &lt;/p&gt;&lt;p&gt;On the TFS application tier machine, run the Reporting Services Configuration editor.&lt;br /&gt;&lt;img src="http://blog.benday.com/blogimages/ReportingServicesConfiguration.jpg" /&gt;&lt;/p&gt; &lt;p&gt; Click the "Execution Account" tab.&lt;/p&gt; &lt;p&gt;&lt;img src="http://blog.benday.com/blogimages/ReportServerExecutionAccount.jpg" /&gt; &lt;/p&gt; &lt;p&gt;Uncheck "Specify an execution account" and click Apply.&lt;/p&gt; &lt;p&gt;That fixes the problem.&lt;/p&gt; &lt;p&gt;-Ben&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;-- Need help setting up Team Foundation Server and/or Visual Studio Team System?  Need training on VSTS and TFS?  Want help configuring your source control, work items, and Team Builds?  Contact me via &lt;a href="http://www.benday.com"&gt;http://www.benday.com&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23173.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2008/02/26/23173.aspx</guid>
            <pubDate>Tue, 26 Feb 2008 22:46:29 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23173.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2008/02/26/23173.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23173.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23173.aspx</trackback:ping>
        </item>
        <item>
            <title>Beantown .NET Meeting in Waltham on 1/31 with David Chappell</title>
            <category>C#</category>
            <category>Good stuff</category>
            <category>News</category>
            <category>Tech</category>
            <category>Tech</category>
            <link>http://blog.benday.com/archive/2008/01/20/23172.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://www.beantowndotnet.org" target="_blank"&gt;Beantown .NET&lt;/a&gt; is doing a special joint meeting with Boston .NET, Boston .NET Architecture, and New England Visual Basic Professionals user groups &lt;b&gt;&lt;u&gt;at Microsoft&lt;/u&gt;&lt;/b&gt;&lt;u&gt; &lt;b&gt;in Waltham&lt;/b&gt;&lt;/u&gt; on Thursday, January 31.  (Thanks to &lt;a href="http://blogs.msdn.com/cbowen/archive/2008/01/08/special-multi-user-group-event-with-david-chappell.aspx" target="_blank"&gt;Chris Bowen&lt;/a&gt; for organizing this.) &lt;/p&gt;&lt;p&gt;For this meeting we have David Chappell presenting “&lt;b&gt;Understanding Software + Services&lt;/b&gt;”. &lt;/p&gt;&lt;p&gt;As always, our meeting is open to everyone so bring your friends and co-workers.  For this meeting, there is no need to RSVP. &lt;/p&gt;&lt;p&gt;Future meetings: &lt;/p&gt;&lt;p&gt;• No meeting on February 7 &lt;br /&gt;• March 6 – Adam Machanic – SQL Server 2008&lt;br /&gt;• April 10 – Benjamin Day – NHibernate &amp;amp; Other .NET ORMs&lt;br /&gt;• May 1 –Mario Cardinal – “Best Practices to Decrease Coupling and Raise Cohesion” &lt;/p&gt;&lt;p&gt;&lt;b&gt;Beantown Meeting Details&lt;/b&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;When:&lt;/b&gt; Thursday, January 31, 2007, 6:00 – 8:00pm &lt;/p&gt;&lt;p&gt;&lt;b&gt;Where: &lt;br /&gt;&lt;/b&gt;Microsoft&lt;br /&gt;201 Jones Rd., 6th Floor &lt;br /&gt;Waltham, MA 02451&lt;br /&gt;&lt;a href="http://www.microsoft.com/about/companyinformation/usaoffices/northeast/waltham.mspx"&gt;http://www.microsoft.com/about/companyinformation/usaoffices/northeast/waltham.mspx&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br /&gt;Map:&lt;/b&gt; &lt;a href="http://tinyurl.com/2myyaf"&gt;http://tinyurl.com/2myyaf&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;b&gt;Title: &lt;br /&gt;&lt;/b&gt;Understanding Software + Services &lt;/p&gt;&lt;p&gt;&lt;b&gt;Abstract:&lt;br /&gt;&lt;/b&gt;The move to service-orientation is well underway, both inside enterprises and on the Internet. What role does traditional software play in a world of on-line services? In particular, how is Microsoft approaching the combination of software plus services? This presentation provides an overview of this area, giving an introduction to and a perspective on this emerging combination. &lt;/p&gt;&lt;p&gt;&lt;b&gt;Bio:&lt;br /&gt;&lt;/b&gt;David Chappell is Principal of Chappell &amp;amp; Associates in San Francisco, California. Through his speaking, writing, and consulting, he helps IT professionals around the world understand, use, and make better decisions about enterprise software.  &lt;/p&gt;&lt;p&gt;David has been the keynote speaker for dozens of conferences and events in the U.S., Europe, Asia, and Latin America. His popular seminars have been attended by tens of thousands of developers, architects, and decision makers in forty countries. He has also spoken at many universities, including the National University of Singapore, Moscow State University, and Sweden's Uppsala University. &lt;/p&gt;&lt;p&gt;David's books have been published in ten languages and used regularly in courses at MIT, ETH Zurich, and other educational institutions. He is Series Editor for Addison-Wesley's award-winning Independent Technology Guides, and he's been a columnist for several publications. In his consulting practice, David has helped clients such as Hewlett-Packard, IBM, Microsoft, Stanford University, and Target Corporation adopt new technologies, market new products, train their sales staffs, and create business plans. &lt;/p&gt;&lt;p&gt;David's comments have appeared in The New York Times, CNN.com, and many other publications. Earlier in his career, he wrote software for supercomputers, chaired a U.S. national standardization working group, and played keyboards with the Peabody-award-winning Children's Radio Theater. David holds a B.S. in Economics and an M.S. in Computer Science, both from the University of Wisconsin-Madison. You can reach him at: &lt;a href="http://www.davidchappell.com"&gt;www.davidchappell.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23172.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2008/01/20/23172.aspx</guid>
            <pubDate>Sun, 20 Jan 2008 15:51:50 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23172.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2008/01/20/23172.aspx#feedback</comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23172.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23172.aspx</trackback:ping>
        </item>
        <item>
            <title>Quoted in an article on multicore development</title>
            <category>C#</category>
            <category>News</category>
            <category>Tech</category>
            <category>Tech</category>
            <link>http://blog.benday.com/archive/2008/01/14/23171.aspx</link>
            <description>&lt;p&gt;Newsflash-- I got quoted last week in &lt;a href="http://searchwindevelopment.techtarget.com/originalContent/0,289142,sid8_gci1289237,00.html" target="_blank"&gt;an article&lt;/a&gt; about Microsoft's &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e848dc1d-5be3-4941-8705-024bc7f180ba&amp;amp;displaylang=en" target="_blank"&gt;Parallel Extensions for .NET 3.5&lt;/a&gt; by &lt;a href="http://www.theserverside.net/news/thread.tss?thread_id=48061" target="_blank"&gt;Jack Vaughn&lt;/a&gt;.  (Thanks, Jack!)&lt;/p&gt; &lt;p&gt;-Ben&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23171.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2008/01/14/23171.aspx</guid>
            <pubDate>Mon, 14 Jan 2008 15:46:41 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23171.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2008/01/14/23171.aspx#feedback</comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23171.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23171.aspx</trackback:ping>
        </item>
        <item>
            <title>Could not connect to Virtual Server 2005 R2 SP1 admin web site on Win2003 x64</title>
            <category>Virtual Server R2</category>
            <link>http://blog.benday.com/archive/2008/01/12/23170.aspx</link>
            <description>&lt;p&gt;This problem had been plaguing me all week.  Every time that I'd try to connect to the admin site for my Virtual Server 2005 box, I'd get an http 500 error and Virtual Server would hang.  If I tried to shut down the Virtual Server service through the Services applet or via "net stop" it would just spin and spin and spin.  The only solution was to kill the Virtual Server process.  Conveniently enough, nothing would show up in the event log to help diagnose the problem other than a warning that the service stopped unexpectedly.  (Really? You don't say? -- Of course it did! I'd just killed it myself!  DUH!)&lt;/p&gt; &lt;p&gt;After much gnashing of teeth, I found a solution in Spanish and thanks to Google's "translate" functionality, I was able to actually read it.  &lt;a href="http://translate.google.com/translate?hl=en&amp;amp;sl=es&amp;amp;u=http://forums.microsoft.com/TechNet-ES/ShowPost.aspx%3FPostID%3D1934890%26SiteID%3D30&amp;amp;sa=X&amp;amp;oi=translate&amp;amp;resnum=2&amp;amp;ct=result&amp;amp;prev=/search%3Fq%3Dvirtual%2Bserver%2Bw3svc-wp%2B2216%26hl%3Den%26rlz%3D1T4GGLJ_enUS257" target="_blank"&gt;Here's the post&lt;/a&gt;.  Here's the machine translated quote that helped:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;And it had not tested and works when this problem occurs. Obviously the common VMRC does not work either. &lt;/p&gt;&lt;p&gt;The solution by which I will choose to change the Virtual Server by one who does not have SP1 installed. I think it is too serious a mistake that a VM is that it saves the state can not be lifted again and also not be able to access the site administration.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt; &lt;/p&gt;&lt;p&gt;Sure.  It's not the best translation ever but it got me wondering if there was saved state.  So I took another suggestion from that same forum thread to &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=80ADC08C-BFC6-4C3A-B4F1-772F550AE791&amp;amp;displaylang=en" target="_blank"&gt;download the VMRCPlus client&lt;/a&gt; and connect to Virtual Server without the admin site (via COM?). &lt;/p&gt; &lt;p&gt;Turns out there was a guest OS with saved state.  I dumped the state and now the Virtual Server Admin Site comes up without problems.  &lt;/p&gt; &lt;p&gt;My guess on how this happened is that Windows Update applied a patch on the host machine and then rebooted the server.  When the host server came back up, something was dreadfully wrong with the saved state for that guest machine and it horked Virtual Server.  &lt;/p&gt; &lt;p&gt;-Ben&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23170.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2008/01/12/23170.aspx</guid>
            <pubDate>Sat, 12 Jan 2008 14:00:31 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23170.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2008/01/12/23170.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23170.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23170.aspx</trackback:ping>
        </item>
        <item>
            <title>The Windows Process Activation Service service terminated with the following error: The system cannot find the file specified.&amp;quot;</title>
            <category>Good stuff</category>
            <category>News</category>
            <category>Tech</category>
            <category>Tech</category>
            <link>http://blog.benday.com/archive/2008/01/01/23169.aspx</link>
            <description>&lt;p&gt;I'm not sure if this is related to the Vista Service Pack 1 Beta but I installed the SP1 beta recently and then within the next week or so I couldn't start IIS (W3SVC).  When I'd try to start W3SVC I'd get an error saying "The dependency service or group failed to start."  A little digging and I found out that the Windows Process Activation Service (WAS) wasn't started and that that was the dependency.&lt;/p&gt; &lt;p&gt;(A little side note: trying to search the internet on something called "was" is annoying because either the search service discards "was" as a noise word or I get a match on the past tense form of the verb 'to be'.  Mountains of useless results.)&lt;/p&gt; &lt;p&gt;When I tried to start WAS, I'd get an error saying "The Windows Process Activation Service service terminated with the following error: The system cannot find the file specified."  What made this extra fun to diagnose was that the "file specified" didn't show up in the error message.  &lt;/p&gt; &lt;p&gt;Eventually, I found a &lt;a href="http://technet2.microsoft.com/windowsserver2008/en/library/0618d6b1-6b0d-4358-a5fd-7d610cbfc0921033.mspx?mfr=true" target="_blank"&gt;page on technet that provided the answer&lt;/a&gt;.  The path that WAS was looking for was "c:\inetpub\temp\appPools".  I re-created it and set the permissions as shown in the technet article and everything was working again.&lt;/p&gt; &lt;p&gt;-Ben&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23169.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2008/01/01/23169.aspx</guid>
            <pubDate>Tue, 01 Jan 2008 17:16:53 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23169.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2008/01/01/23169.aspx#feedback</comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23169.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23169.aspx</trackback:ping>
        </item>
        <item>
            <title>VSLive Austin 2007 Slides &amp;amp; Code</title>
            <category>C#</category>
            <category>LINQ To SQL</category>
            <category>NHibernate</category>
            <category>Team Build</category>
            <category>Team Foundation Server (TFS)</category>
            <category>Tech</category>
            <category>Visual Studio Team System (VSTS)</category>
            <link>http://blog.benday.com/archive/2007/11/19/23168.aspx</link>
            <description>&lt;p&gt;Last week I was speaking at &lt;a href="http://www.ftponline.com/conferences/vslive/2007/austin/" target="_blank"&gt;VSLive Austin 2007&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Here are some links to download my slides and sample code.&lt;/p&gt; &lt;table cellspacing="0" cellpadding="2" width="400" border="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign="top" width="283"&gt;Serious ASP.NET WebPart Customization&lt;/td&gt; &lt;td valign="top" width="115"&gt;&lt;a href="http://www.benday.com/presentations/vsliveaustin2007/VSLAustin07_SeriousAspNetWebPartCustomization.pdf" target="_blank"&gt;(slides)&lt;/a&gt; / &lt;a href="http://www.benday.com/presentations/vsliveaustin2007/VSLive_WebParts_Code.zip" target="_blank"&gt;(code)&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="283"&gt;Serious Team Foundation Server Customization&lt;/td&gt; &lt;td valign="top" width="115"&gt;&lt;a href="http://www.benday.com/presentations/vsliveaustin2007/VSLAustin07_SeriousTfsCustomization.pdf" target="_blank"&gt;(slides)&lt;/a&gt; / &lt;a href="http://www.benday.com/presentations/vsliveaustin2007/SeriousTFSCustomization_Code.zip" target="_blank"&gt;(code)&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="283"&gt;Serious Team Foundation Server Source Control&lt;/td&gt; &lt;td valign="top" width="115"&gt;&lt;a href="http://www.benday.com/presentations/vsliveaustin2007/VSLAustin07_SeriousTfsSourceControl.pdf" target="_blank"&gt;(slides)&lt;/a&gt; / &lt;a href="http://www.benday.com/presentations/vsliveaustin2007/SeriousTFSSourceControl_Code.zip" target="_blank"&gt;(code)&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="283"&gt;Worshipping LINQ to SQL&lt;br /&gt;(Joint session with &lt;a href="http://www.richardhaleshawgroup.com" target="_blank"&gt;Richard Hale Shaw&lt;/a&gt;)&lt;/td&gt; &lt;td valign="top" width="115"&gt;&lt;a href="http://www.benday.com/presentations/vsliveaustin2007/VSLAustin07_WorshippingLinq_BenDay.pdf" target="_blank"&gt;(slides)&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign="top" width="283"&gt;Workshop -- &lt;br /&gt;Visual Studio Team System and Team Foundation Server: A Developer's Perspective&lt;/td&gt; &lt;td valign="top" width="115"&gt;&lt;a href="http://www.benday.com/presentations/vsliveaustin2007/VSLAustin07_Workshop_BenDay_TeamSystem.pdf" target="_blank"&gt;(slides)&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;-Ben&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23168.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2007/11/19/23168.aspx</guid>
            <pubDate>Mon, 19 Nov 2007 13:59:10 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23168.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2007/11/19/23168.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23168.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23168.aspx</trackback:ping>
        </item>
        <item>
            <title>Updated Continuous Integration Service for TFS 2005 / Team Build 2005</title>
            <category>Tech</category>
            <category>Good stuff</category>
            <category>Team Foundation Server (TFS)</category>
            <category>Visual Studio Team System (VSTS)</category>
            <category>MSBuild</category>
            <category>Team Build</category>
            <link>http://blog.benday.com/archive/2007/11/19/23167.aspx</link>
            <description>&lt;p&gt;You're probably familiar with the &lt;a href="http://blogs.msdn.com/khushboo/archive/2006/01/04/509122.aspx" target="_blank"&gt;Khushboo Continuous Integration Service&lt;/a&gt; for Team Foundation Server 2005 &amp;amp; Team Build 2005.  &lt;/p&gt; &lt;p&gt;I've been using it for a long while now but recently ran up against a limitation: you can't specify a build per source control sub-directory -- you can only specify continuous integration builds at the Team Project level.  Put another way, if you check in a file anywhere in your team project it kicks off the build and I needed it to kick off a specific build whenever the code was checked in to a certain directory.&lt;/p&gt; &lt;p&gt;In the service, the builds are configured inside of web.config using numbered builds (key="1", key="2", etc) with name-value pair configurations.  I added support for a new value called PathToBuild.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&amp;lt;appSettings&amp;gt;&lt;br /&gt;  &amp;lt;add key="LogFileName" value="CI-log.txt"/&amp;gt;&lt;br /&gt;  &amp;lt;add key="TeamFoundationServer" value="&lt;a href="http://labtfs:8080&amp;quot;"&gt;http://labtfs:8080"&lt;/a&gt; /&amp;gt;&lt;br /&gt;  &amp;lt;add key="ServerUrl" value="&lt;a href="http://labtfs&amp;quot;"&gt;http://labtfs"&lt;/a&gt; /&amp;gt;&lt;br /&gt;  &amp;lt;add key="1" &lt;br /&gt;    value="TeamProjectName=Agile Team Project;BuildType=Default Build;&lt;br /&gt;     &lt;strong&gt;PathToBuild=$/Agile Team Project/Main/Demo20071030"&lt;/strong&gt; /&amp;gt;&lt;br /&gt;  &amp;lt;add key="2" &lt;br /&gt;    value="TeamProjectName=Agile Team Project;BuildType=Branch Build;&lt;br /&gt;     &lt;strong&gt;PathToBuild=$/Agile Team Project/Branches/Demo20071030"&lt;/strong&gt; /&amp;gt;&lt;br /&gt;&amp;lt;/appSettings&amp;gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;PathToBuild indicates the source control path that will trigger the build.  &lt;/p&gt; &lt;p&gt;Changes from the Khushboo Version:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;In order to make setup easier, I added a batch file to run the bissubscribe.exe registration script.  Edit this script with the name/address of your TFS instance and then run the file.  That should be all you need to do to register the service with TFS.  &lt;br /&gt;&lt;br /&gt;If you already have the Khushboo version installed, delete the contents of your CI directory and replace it with my code.  &lt;/li&gt;&lt;li&gt;Refactored the CI classes into their own files.  Moved the CheckInEvent class to a new project called ContinuousIntegration.Business.  &lt;/li&gt;&lt;li&gt;Added a new ContinuousIntegration.UnitTests project with a handful of unit tests.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Deployment instructions:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Download the zip file (see below) to your TFS machine  &lt;/li&gt;&lt;li&gt;Unzip the files  &lt;/li&gt;&lt;li&gt;Open explorer.exe and go to &lt;br /&gt;C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\Web Services\  &lt;/li&gt;&lt;li&gt;Copy the "CI" from the zip file to the&lt;br /&gt;C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\Web Services\ directory  &lt;/li&gt;&lt;li&gt;Open the IIS Manager, find the CI folder.  Right-click, go to Properties, click the "Create Application" button, then set the AppPool to be "TfsAppPool"  &lt;/li&gt;&lt;li&gt;Modify the web.config file in &lt;br /&gt;C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\Web Services\CI to point to your TFS instance  &lt;/li&gt;&lt;li&gt;Modify the web.config file to point to your desired source folder and build  &lt;/li&gt;&lt;li&gt;Go to the unzipped code files and locate "bis_ci_build.bat".  Open it with notepad and change the /address portion to point to your TFS instance  &lt;/li&gt;&lt;li&gt;Run bis_cit_build.bat  &lt;/li&gt;&lt;li&gt;You're done.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a href="http://www.benday.com/DisplayWebPage.aspx?linkId=50" target="_blank"&gt;Click here to download the code &amp;amp; binaries.&lt;/a&gt;&lt;/p&gt; &lt;p&gt;-Ben&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;p&gt;-- Need help setting up Team Foundation Server and/or Visual Studio Team System?  Need training on VSTS and TFS?  Want help configuring your source control, work items, and Team Builds?  Contact me via &lt;a href="http://www.benday.com"&gt;http://www.benday.com&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blog.benday.com/aggbug/23167.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Benjamin Day</dc:creator>
            <guid>http://blog.benday.com/archive/2007/11/19/23167.aspx</guid>
            <pubDate>Mon, 19 Nov 2007 13:02:53 GMT</pubDate>
            <wfw:comment>http://blog.benday.com/comments/23167.aspx</wfw:comment>
            <comments>http://blog.benday.com/archive/2007/11/19/23167.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.benday.com/comments/commentRss/23167.aspx</wfw:commentRss>
            <trackback:ping>http://blog.benday.com/services/trackbacks/23167.aspx</trackback:ping>
        </item>
    </channel>
</rss>