Archive

Archive for the ‘Microsoft’ Category

SharePoint Portal Server 2003 SP2, or How Not to Design a Service Pack

January 3rd, 2006 Comments off

Microsoft released SharePoint Portal Server 2003 Service Pack 2 (SP2) in October 2005, following the weeks-earlier release of Windows SharePoint Services Service Pack 2 (SP2).  I was hoping to get .NET Framework 2.0 installed on our SPS Web server for other purposes, so I was hoping that Microsoft addressed the .NET Framework 2.0 incompatibilities with SP2.  It looked promising because WSS SP2 specifically mentioned ASP.NET 2.0 support.

After reviewing the release notes and backing up the portals and sites with the SharePoint Portal Server Data Backup and Restore tool, I installed WSS SP2.  It installed cleanly with no issues, so I was off to a good start.

Next was the SPS SP2 install.  Microsoft’s Office team has produced a lot of complicated service packs in the past.  They should know how to do it right.  Clearly this is a different team, because the folks that signed off on QA and user experience for this one deserve to be fired.  Running this service pack produces the familiar Windows Installer progress dialog, which runs for a while and then disappears.  There is no confirmation when it finishes — no matter whether it succeeds, fails, or falls somewhere in between.

It turns out there are two phases to the SPS 2003 SP2 installer.  The first phase upgrades SharePoint Portal Server’s program installation with SP2 files.  The second phase goes through each of your portal sites and attempts a database upgrade on each one.  This is where my four hour struggle began.

The only way you can tell if your SP2 install succeeded, or to what degree, is to read the event log.  You MUST do this.  Search the Application event log for an event that contains text similar to this:

Attempted to apply update to SharePoint Portal Server 2003 portal sites.
Number of portal sites: value
Number of portal sites attempted: value
Number of portal sites successfully updated: value
Not run: value

In my case, this is what I found:

Attempted to apply update to SharePoint Portal Server 2003 portal sites.
Number of portal sites: 1
Number of portal sites attempted: 1
Number of portal sites successfully updated: 0
Not run: 0
Consult the ReadMe file included with this patch, or *_spsadmin.log for more details.

Once again, looking for this “successfully updated” mismatch with “attempted” in the Event Log is the only way you will know the result of your SP2 install.

Next stop was \Program Files\SharePoint Portal Server\Logs, where I found logs that contained the same text and some unhelpful .NET exceptions.  In order to make SPS retry the database upgrade, you have to edit the registry.  [WHAT?!?  Yes, it's true.]  Here’s a KB article that describes the registry modification.  I probably made this change 30 times over the next 3-4 hours.

I eventually found an obscure WSS/SPS KB article or two (unrelated to SP2) while grasping at straws, ended up restoring my sites and portal from the backup, and eventually managed to get it to upgrade the database successfully.  It was not a pleasant experience.  After all that work, it looks like SP2 may have added or modified one app.exe.config file for Framework 2.0 compatibility.  It’s possible that there were other changes, but SPS portals remain incompatible with ASP.NET 2.0.  Do not run your portal sites under ASP.NET 2.0 (I tried for a while).

Please do not skip your backups before these upgrades, and be ready for possible troubles.

Categories: Microsoft Tags:

.NET Framework 1.1 and 2.0 Side-by-Side (SxS)

December 9th, 2005 100 comments

December 18, 2006 Update: You may find my post on .NET 3.0 compatibility useful.

As a part-time systems engineer, I was very concerned about possible negative effects of installing the .NET Framework 2.0 side-by-side with 1.1 on our Windows Server 2003 boxes that run things like SharePoint Portal Server, Windows SharePoint Services and Exchange 2003.  I’ve searched and searched, and it seems like Microsoft is making little effort to document .NET Framework 2.0 compatibility with their server products.

It helps to understand how different types of executable code load the Framework.  Unmanaged applications that host the Common Language Runtime (CLR), that is, non-.NET applications that manually load the CLR in order to run .NET code, always load the newest installed version of the .NET Framework by default.  This behavior directly impacts SharePoint Portal Server, as one example, in a negative way.  Some unmanaged executables in SPS host the CLR, so as soon as you install 2.0 and restart the SPS apps, they will load 2.0, not 1.1 as they were designed and tested against.  BAD!

Fortunately, managed applications behave better.  A managed application that was built against 1.1 will continue to load 1.1, as long as 1.1 is installed.  (On Windows Server 2003 you don’t have a choice, but on other OS’s you can uninstall 1.1.)  A managed application that was built against 2.0 will only load 2.0.  If you uninstall Framework 1.1, your 1.1 managed app will now load 2.0 instead.

Confused?  When Microsoft doesn’t document which unmanaged apps host the CLR, the bottom line is that you need to be careful installing 2.0.

If you identify an unmanaged app that hosts the 1.1 CLR and you want to install Framework 2.0, there is a way to force the unmanaged app to load the old Framework:

  1. Locate the unmanaged EXE, and in the same directory, create (or edit) a text file called <unmanagedexename>.exe.config.  Ex: myapp.exe needs myapp.exe.config.
  2. Paste this text into the new text file (or merge it into the existing file; you may already have <configuration> and/or <startup> elements):
    <?xml version =”1.0″?>
    <configuration>
      <startup>
        <supportedRuntime version=”v1.1.4322″ />Â
      </startup>
    </configuration>
  3. Save the config file and start or restart the EXE or service

Installing the 2.0 Framework without adding or updating the config files will affect SharePoint Portal Server and BizTalk Server 2004.  BizTalk Server 2006 natively runs on, and requires, .NET Framework 2.0, and runs just fine with .NET Framework 3.0 as well.

To safely install 2.0 on your BizTalk 2004 server:

  • Add (or update) a config file for each EXE in your BizTalk 2004 installation folder
  • Reboot or restart all BizTalk services
  • Review Microsoft’s KB
  • After installing Framework 2.0, ensure that all BizTalk Web services remain configured to run under ASP.NET 1.1.

To safely install 2.0 on your SPS servers:

  • Add (or update) a config file for each EXE in your SPS installation folder
  • I recommend installing WSS 2.0 SP2, which explicitly supports ASP.NET 2.0, and then SPS 2003 SP2.  If you are not ready to upgrade, you can still add the config files and safely install 2.0 on SP1 or earlier.
  • After installing Framework 2.0, ensure that all SPS portal Web sites remain configured to run under ASP.NET 1.1.  SPS SP2 does not support ASP.NET 2.0, even though WSS does.

To safely install 2.0 on your Exchange 2003 servers:

  • Exchange Server 2003 doesn’t appear to host the CLR, so it should be safe to install 2.0 on Exchange front-end or back-end servers.  I installed it on our front-end server with no issues.
  • After installing Framework 2.0, ensure that the OWA Web site remains configured to run under ASP.NET 1.1 (IIS Admin, site properties, ASP.NET tab).

Installing .NET Framework 2.0 installs ASP.NET 2.0.  By default, this will not change existing IIS Web sites to 2.0 — they will remain set to 1.1/1.0.  You can control this in IIS Admin in the site properties under the new ASP.NET tab.  Do not try to mix ASP.NET 1.1 and 2.0 apps within a single AppPool on Windows Server 2003.  Create separate AppPools for each version.

Office 2003 is unmanaged but does host the CLR, so it may also be affected by installing Framework 2.0.  There are known issues with Office 2003 when loading add-ins, smart tags or smart documents created with .NET Framework 2.0.  There is also a related VS2005 update for Visual Studio 2005 developers.

Visual Studio .NET 2003 developers may experience trouble in certain cases after installing Framework 2.0.  One such issue is fixed in .NET Framework 1.1 SP2.

The Framework documentation briefly, and poorly, discusses the side-by-side issue here.

I would appreciate comments on this post!  Is it helpful?  What information can I expand on?  Are there other issues that you are concerned about or have experienced?

Categories: Development, Microsoft Tags:

Visual Studio 2005 Licensing – A Sad State of Affairs

November 16th, 2005 Comments off

Microsoft may be an awesome technology company, but they have often managed to screw up licensing and major marketing efforts.  Remember when they thought that every product name should have .NET attached to it?  Remember ActiveX?  How about Licensing 6 and Software Assurance?

Astonishingly, they have completely botched the Visual Studio 2005 licensing model.  I don’t even know where to begin.

First off, Microsoft partners, accustomed to getting almost any software they want, are the first casualty.  Certified Partners receive only VS 2005 Professional, sans unit testing, static code analysis, deployment designer and more.  Even a Gold Certified Partner only gets VS 2005 for Software Developers.  Neither one gets Team Suite, let alone Team System.  OK, they get a TRIAL version of Team Suite, for what that’s worth.

The incredibly confusing product names are the second part of the mess.  Express, Professional, for Software Developers, for Architects, for Testers, Team Suite, Team System, each and every one a different SKU with different features included.  Who signed off on this disaster?  No one can understand what’s what without elaborate charts and pictures.

My current client was excited to move to VS 2005, but the managers certainly didn’t have time to negotiate this licensing maze.  Fortunately, I discovered that they were about to order the wrong product SKUs and corrected their confusion on what was what in the product line.  Imagine this scenario repeating itself across the globe.

Shame on Microsoft’s marketing department for this, the biggest Visual Studio launch in the history of Microsoft!

Categories: Microsoft Tags: