Jan 28
ASP.NET MVC RC 1 Visual Studio Crash
icon1 Darrell Mozingo | icon2 Quickie | icon4 January 28th, 2009| icon36 Comments »

After installing the newly released ASP.NET MVC RC 1, Visual Studio started crashing on me when opening a View (.aspx filer), always with the following error in the Application event log:

Error 1/28/2009 10:50:31 AM .NET Runtime 1023 None
.NET Runtime version 2.0.50727.3053 – Fatal Execution Engine Error (707F5E00) (80131506)

Though every few tries, this one would pop up too:

Error 1/28/2009 10:41:27 AM devenv 0 None
The description for Event ID 0 from source devenv cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event:

The data source ‘{130bada6-e128-423c-9d07-02e4734d45d4}’ specifies no supporting providers or a set that are not registered.

Oh, and as an FYI, this is on a Vista 64-bit box.

Seems quite a few people had this almost identical problem with the Preview 5 release last time. Uninstalling all my add-ins (Visual SVN, ReSharper, Gallio, etc.) didn’t help, nor did a complete MVC re-install after rebooting.

I eventually found a post here that mentioned whacking the bin folder and all its contents helped their Preview 5 issue. It didn’t quite work for me, however, after removing and re-adding the references to all four MVC assemblies (Microsoft.Web.Mvc, System.Web.Mvc, System.Web.Abstractions, and System.Web.Routing) and doing a full rebuild, my problem disappeared and I was good to go.

It’s odd how an assembly reference would cause Visual Studio to crash. It must be trying to do something with them when you open the .aspx page in the source view. Even odder is the fact that I overwrote the old Preview 5 assemblies with the new ones, so I thought doing a full rebuild in Visual Studio would have automatically used those new assemblies. Guess the IDE needs them re-referenced, though. Oh well, works now.

Jan 17
Running IIS 7 In 32-bit Mode
icon1 Darrell Mozingo | icon2 Quickie | icon4 January 17th, 2009| icon313 Comments »

I recently got a new machine at work with a 64-bit quad-core CPU, dual 15k RPM SCSI drives, 4G RAM, and, *gulp*, Vista. I’ve never used Vista before, and after all the horror stories I’ve heard, I was pretty hesitant. We’re using ASP.NET MVC with our new project, though, and deploying out to Windows Server 2008, which runs IIS7, so I figured developing with the same thing on my local box was a good idea. That means running the apps through IIS and not the built in Visual Studio 2008 Cassini server, which is what I was using back on XP.

So I set everything up, check out our project, fire up Visual Studio, hit debug, and BAM! I get a nice looking yellow screen of death, which, incidentally, isn’t our application’s start-up page. Here’s the exception it throws:

System.BadImageFormatException: Could not load file or assembly ‘OurProject.Core’ or one of its dependencies. An attempt was made to load a program with an incorrect format.

WTF? It was working fine on my old box. I recompiled our app after changing all the projects to explicitly compile in 32-bit mode and still got the error. As it turns out, IIS will, by default, run in 64-bit mode on a 64-bit box. Makes sense. If you open Task Manager, you can see that’s how it works (note there’s no *32 next to the process name like all the other 32-bit apps that are running, like Fire Fox and Visual Studio):

Task Manager showing IIS 7 running in 64-bit mode.

So how do you tell IIS 7 to run in 32-bit mode? I found a terribly helpful post here that details of the situation (both a fix and the reasoning behind it). Basically, go into your IIS 7 manager console, find the application pool your app is running in, right-click on it, go to Advanced Settings, and change the Enable 32-bit Applications setting to true:

Editing the application pool properties in the IIS 7 Manager snap-in.

Now restart IIS (either via the snap-in or the command line w/net stop w3svc & net start w3svc) and you’re good to go. Easy enough, right? Pop open Task Manager again and you should see a lovely *32 next to the World Wide Web Worker Process (w3wp.exe), signifying that it’s basically running in 32-bit compatibility mode:

Task Manager showing IIS 7 running in 32-bit mode.

Hopefully your app should load fine now. Well, at least mine did.

Jan 2
New Year, New Goals – 2009
icon1 Darrell Mozingo | icon2 Goals | icon4 January 2nd, 2009| icon37 Comments »

John Miller has a nice post throwing his 2009 goals out there for everyone to see, and challenging everyone else to do the same. I think it’s a great idea, so here’s my list for 2009:

Books

In order:

  1. Code Complete – Steve McConnell (yep, I’ve never actually read it)
  2. Patterns of Enterprise Application Architecture – Martin Fowler
  3. Domain Driven Design – Erick Evans
  4. Working Effectively With Legacy Code – Robert Martin

Tools/Techniques/Processes @ Work

  • NHibernate and all its trimmings (FluentNHibernate, LINQ to NHibernate, etc), which I’ll need on a project here real soon.
  • Actually move from CC.NET to Team City (last attempt didn’t go so well).
  • Build a more robust build script and management process – including production deployment scenarios.
  • Messaging framework, either MassTransit, NServiceBus, or Ayende’s new Rhino Service Bus if he’s able to release it in time for our current project.

Involvement

  • We have weekly meetings to catch everyone up on what we’re doing, but I want to present on an actual topic during at least 2 of these – and present in a way where the other development teams will see the use in picking up the presented tool/technique.
  • Have at least one meeting of the CantonALT.NET group and see if it can ever get up on its feet.
  • The two blog posts per month target John put out there seems doable, so I’ll borrow it 🙂
  • At least 3 feature/patch submissions to open source projects.

Productivity

  • Trim RSS feed size by 1/3 (presently at 127, so trim it to at least 85) and cut time viewing it by half. I’ve gotten much better this past year at cutting through the useless stuff, but there’s still a lot there and it sucks up too much of my time.

My goal list might seem a little on the light side, but that’s simply because I have a lot of personal goals that I’d like to tackle this year (which I’ve detailed on my personal blog), and there is, after all, only so much time in the day.

I’m making a reminder now to update my status every two months. Time to plan out a schedule to reach these goals…

Happy New Year!