An Architect's View

CFML, Clojure, Software Design, Frameworks and more...

An Architect's View

Vista, IIS7 and BlueDragon

August 8, 2007 ·

As you might have gathered from my recent posts, I'm trying to set up a full-blown development environment on Vista, just to see how I get on and to compare it with my regular development environment on OS X. Having beaten SQL Server Express into submission after much pain, I figured I'd talk about my experiences getting BlueDragon 7 .NET installed and running. First off, I knew that IIS was not enabled by default but poking around in what I thought were the obvious places didn't give me any clues about how to enable it. Google quickly directed me to a tech note (on MSDN or Microsoft's support site) that showed me the way. The more I work with Vista, the less I like the new Control Panel layout compared to XP. Anyway, I enabled IIS per the instructions and verified that I could access it locally. A quick tweak to the firewall allowed me to access it from OS X as well. All good so far and not too painful. Now that IIS 7 was running, I figured BD7.NET would be a simple install. The install went fairly smoothly but IIS7 refused to serve any pages up afterward. The friendly error message pointed at a problem with applicationHost.config so I tracked that file down (another Google search) but couldn't figure out how to open it (because of security restrictions). Another Google search revealed that I needed to locate Notepad in the Start Menu and right-click Run As Administrator and then Open... and navigate back to the configuration file. By pure guesswork, I changed:
<location path="" overrideMode="Allow">
which wraps the BD-installed handlers to:
<location path="Default Web Site" overrideMode="Allow">
and IIS7 came back to life. Yay me! Unfortunately, when I tried to run the BlueDragon Admin, I got a 500 error and something about a bad "ManagedPipelineHandler" in the BlueDragon configuration (and, of course, that text was nowhere to be found in the config file!). Google turned up one reference to this, on New Atlanta's self-help mailing list. Someone called Brian had hit the exact same error back in July but no one had replied. Darn! So I emailed New Atlanta's support and today I got a response from Lori who confirmed that the applicationHost.config settings were correct (with path="") but asked me to check a couple of things... Number one was whether I had installed ASP.NET. Hmm, I thought that was built into IIS7 so it hadn't occurred to me I'd need to set that up independently. It also hadn't occurred to me that BD7.NET would require ASP.NET but that's another story. Lori had attached a screen shot of the same Windows program features dialog that I'd used to enable IIS7 but she showed the options I needed to check to enable ASP.NET. Things still didn't work right but now I could figure out the solution on my own: since I'd installed BD7.NET before ASP.NET, applicationHost.config wasn't what BD expected so all I had to do was merge the BlueDragon handlers into the ASP.NET handlers. Yes, that worked as expected! IIS7 works. BlueDragon works. I can access both from Vista and from OS X. I configured a MS SQL Server data source (to connect to the SQL Server Express instance) and that worked too! Yay! Then I tried to configure a MySQL data source and got "Could not load file or assembly 'MySql.Data' or one of its dependencies." *sigh* So I downloaded the Connect/NET 5.0 ADO-based driver and installed that and rebooted. Still the same error message. Back to Google I guess...

Tags: bluedragon · coldfusion · microsoft

15 responses

  • 1 Mike McConnell // Aug 8, 2007 at 5:25 PM

    Vista has some interesting quirks that eventually forced me back to XP (for which I now have a much finer appreciation). I do all my CF/Flex development in VMWare Server (where CF, IIS, and SQL Server run) with the IDEs running on the &quot;host&quot; system. I've found this to be an ideal solution. However, under Vista, it takes about 5 minutes to crank up a VM image. The same image loads in about a minute under XP. Also, Flex Builder doesn't get along with the Aero interface very well. Certain actions (I have yet to figure out the rhyme or reason) cause the interface to shut down. There is not any appreciable difference in screen appearance, but the error is annoying and has caused FB to shut down on several occasions. I also find that file I/O is sluggish compared to XP, at least when logged into a Windows Domain. After several months of trying to make Vista work, I went back to my good ol' XP partition and have not really looked back. As an aside, I'm not particularly wild about Office 2007 either. There were some very strange design decisions made in Outlook.

    I truly hope that Microsoft listens to the (many) similar complaints posted on blog after blog on the internet. If their history is any indication of what they will do (or not do as the case may be), we're screwed. Good luck with your installs. I'd be very interested to know how they turn out.

    M. McConnell
  • 2 Vince Bonfanti // Aug 8, 2007 at 6:15 PM

    BD.NET is built on top of the ASP.NET extension APIs, just as CF and BD Java/J2EE are built on the Java servlet API. That's why ASP.NET has to be installed. It's not installed by default on IIS 7 per their new modular architecture, and philosophy of exposing &quot;minimum attack surface area&quot; for security reasons.

    In any case, we need to do a better job by having the BD.NET installer detect whether ASP.NET is installed, and by updating our documentation. These will be done in the upcoming BD 7.0.1 release.

    I'll follow-up on your MySQL issue tomorrow morning. I assume you installed the ADO.NET provider (driver) in the GAC (C:\Windows\assembly)? You might try creating a &quot;bin&quot; directory within your web server document root and placing the MySQL ADO.NET driver there.
  • 3 Sean Corfield // Aug 8, 2007 at 7:24 PM

    @Vince, thanx. I'll keep playing with the MySQL driver. I downloaded Connector/NET and did the &quot;default&quot; install but maybe that wasn't enough.
  • 4 Bill Staples // Aug 8, 2007 at 7:24 PM

    You may want to check out - this is the official IIS web site and it has a ton of great articles on how to get started with IIS7.
  • 5 TJ Downes // Aug 8, 2007 at 9:32 PM

    @Mike: If you are having issues with FlexBuilder on Vista I would recommend using Eclipse with the FlexBuilder plugin. Eclipse 3.2.2 gets along wel with FlexBuilder and CFEclipse, on Vista.

    Not sure what version of Vista and CF you were trying to use, but I have been using CF 8 on IIS 7 for a while with no issues whatsoever. It seems pretty speedy to me.

    I recommend to anyone using Vista who is a developer and can secure their own PC using Firewall and AV to DISABLE USER ACCOUNT CONTROL. Half the reason people dislike Vista is UAC, and it is a headache.
  • 6 Sean Corfield // Aug 8, 2007 at 9:39 PM

    @TJ, I'm actually getting used to UAC and don't find it as intrusive and annoying as I'd expected to (I'd disabled it as a matter of course when I installed Vista on Parallels and needed to tune it for speed).
  • 7 Calvin // Aug 9, 2007 at 3:44 AM

    I'm also a fan of running VMWare with a development server environment as a guest environment and my IDE and other tools on the Host OS. It's particularly nifty when recreating the environment between workstation and laptop.
  • 8 Vince Bonfanti // Aug 9, 2007 at 7:50 AM

    Hi Sean,

    Regarding your MySQL issue, the default MySQL ADO.NET &quot;installer&quot; doesn't do anything but copy the files to your filesystem. That's not enough to make them available to BlueDragon.

    The easiest thing to do is to create a &quot;bin&quot; directory within your web doc root (for example, &quot;C:\Inetpub\wwwroot\bin&quot;) and copy the &quot;C:\Program Files\MySQL\MySQL Connector Net 5.0.7\Binaries\.NET 2.0\MySQL.Data.dll&quot; file to the &quot;bin&quot; directory. This will make the MySQL ADO.NET driver available only for the Default Web Site.

    To make the MySQL ADO.NET driver available globally, the MySQL.Data.dll needs to be installed in the Global Assembly Cache (GAC), located at &quot;C:\Windows\assembly&quot;. This is a bit trickier, though, due to security restrictions on the GAC in Vista.

    P.S. I believe these instructions are provided on the BD admin console page when you configure a MySQL datasource. We'll review these instructions to see if they can be clarified.
  • 9 Vince Bonfanti // Aug 9, 2007 at 10:48 AM

    One more note on MySQL ADO.NET: I was just informed that version 1.0.9 was the latest production release when BD 7.0 was released in March. Therefore, it's best to stick with 1.0.9 until we have a chance to run regression test with the lastest MySQL ADO.NET driver.
  • 10 Sean Corfield // Aug 9, 2007 at 12:55 PM

    @Vince, perfect! I can access my OS X MySQL instance from BlueDragon on Vista now!

    The data source setup page in the admin does talk about how to install the driver (although it refers to .NET 1.1) but because the text was below the (long) table with all the MySQL options, I hadn't noticed it when I tried to add the first data source.

    Guess I'll have to start learning about GAC and so on in order to use this newfangled operating system :)
  • 11 Vince Bonfanti // Aug 9, 2007 at 1:31 PM

    Great! Think of the GAC as a sort of &quot;global classpath&quot;; any .NET assemblies installed there are available to any .NET application (which is why you need adminstrator privileges to install assemblies there).

    Think of the &quot;bin&quot; or &quot;App_Code&quot; directories as a sort of &quot;local classpath&quot; for your web applications (similar to &quot;WEB-INF\lib&quot; for J2EE webapps).
  • 12 Sebastiaan // Aug 13, 2007 at 4:36 AM

    Hi Sean,
    just a question: why are you setting up BD.NET instead of the normal BD running with Apache and MySQL? By default BD comes with IIS and MSSQL support and after a little tweaking and adding a DLL it runs on the abovementioned. Or is this just a test of the real life situations you face everyday? All those people hooked on .NET and being stuck with Microsoft?
    At my work, a Dutch ministry, we're obliged NOT to get stuck with one vendor and thus have chosen NOT to use only .NET, but also JAVA as a platform. Above those two platforms we will use Coldfusion for all front- and middle tier development. But as Coldfusion is native 'stuck' to JAVA most of the stuff we do is centered around JAVA. .NET only comes into the picture when we want something fast and there aren't enough Coldfusion developers available. Our second option is then to turn to the tidal wave of .NET developers and have them develop the necessary software. As you may understand from my story we see .NET as plan B, even though it's becoming harder NOT to create software in .NET. Anyways, good look with Googling ;-)
  • 13 Vince Bonfanti // Aug 13, 2007 at 7:11 AM

    Hi Sebastiaan,

    If you're &quot;obliged NOT to get stuck with one vendor,&quot; then how does your ministry justify the use of ColdFusion? Is it because you can point to BlueDragon, and say, &quot;CFML is not a single-vendor solution&quot;? Prior to BlueDragon how did your ministry justify using a single vendor product (ColdFusion)?

    I'm not trying to cause trouble here, just curious. I've seen a similar discussion recently related to Flash, where people want to say &quot;single-vendor, proprietary is bad&quot; when the single vendor is Microsoft, but &quot;single-vendor, proprietary is OK&quot; when the vendor is someone else (such as Adobe with either Flash or ColdFusion).
  • 14 Sean Corfield // Aug 13, 2007 at 8:48 AM

    @Sebastiaan, after seeing the New Atlanta keynote at CFUNITED this year I'm very interested in seeing how that platform evolves (on .NET - that's where they showed the really interesting integrated stuff). Since I've finally gotten Vista running acceptably (on VMware Fusion on my Mac), I can dedicate that environment to BD.NET / SQL Server while I keep the OS X side dedicated to ColdFusion / Java / Apache / MySQL. And of course I can use MySQL (on OS X) from BD.NET on Vista and I can use SQL Server (on Vista) from ColdFusion which makes it a pretty flexible combination.
  • 15 Sebastiaan // Aug 14, 2007 at 12:20 AM

    @Sean: you sure are covered now - every platform and every concievable combination ;-)

    @Vince: Fun to communicatie with the CEO of a company that produces a product I've been using for a long time and am very happy with ;-)

    To answer your &quot;non-troublesome&quot; question:
    At the ministry of Social Affairs and Work we've been using Coldfusion (CFML) for more than 7 years. From day one this was an Allaire product and the only one of it's kind. The choice was easily made at the time: CFML was the language to go, far superiour to all other programming languages and application servers at the time. Almost like clockwork we went through the different stages of professionalising our development department, until it was decided that the government and it's institutions would no longer develop in-house. During that time we made the transition from Allaire Coldfusion 4 to Macromedia Coldfusion MX (skipping 5) and are now moving towards migrating all servers to Adobe Coldfusion 7. As you know Coldfusion as a product was always locked to one vendor, be it with a different &quot;prefix&quot;. Then came BlueDragon and all of a sudden Coldfusion was a product of one company and CFML was a common language it shared with NewAtlanta.
    Privately I've been using BD since version 6, mostly because it's been a free to use CFML Application server and because it had many benefits over the sometimes heavy and inconsistent (at the time) Macromedia Coldfusion Application server. Together with a colleague at work we slowly started voicing our opinion that it might be a good idea to see if we as a Ministry could look into the possibilities that another CFML vendor, namely NewAtlanta, were offering at the time. As we both were very satisfied with the product (BlueDragon) and had found that it also operated perfectly in an Open Source environment (Apache, MySQL), we started to look into the possibility for a CFML vendor switch. As the &quot;one-vendor-per-technology-is-bad&quot; attitude slowly grew within Government and Open Source became the new &quot;buzz-word&quot;, it forced us to look at our current &quot;one-vendor&quot; policy regarding CFML. Presently we're re-building our IT-architecture from scratch, trying to cover every aspect of our IT-platform. One aspect is the programming language we will be using on top of .NET and JAVA. As CFML is our prime language and what more than 90% of our web-based applications and websites is built on, we'll most probably stick to CFML. But it's not said that we then automagically are sticking to Adobe. As with all Government we need to check our possibilities per technology and where 7 years ago there was only one serious contender (Allaire Coldfusion - I still have their t-shirt!), today we face three serious contenders and one upcoming.

    So Vince, to answer you in a nutshell: yes, &quot;single-vendor, proprietary is OK&quot; was the official line 7 years ago and we've actually just gone with the flow since then. Today we know better and are seriously looking at our alternatives. My personal experience with BD is only positive, but having said that, Coldfusion 8 (Scorpio) also has some very neat features ;-) The last word has not been spoken in this matter!