Q:

SSIS Package fails on execute "Integration Services evaluation period has expired"

I have an issue executing a package via the API at Microsoft.SqlServer.Dts.Runtime.  I have 4 SQL servers that can potentially execute my package in 2 clusters.  On the passive nodes in each cluster, execution fails - reported error is that SSIS evaluation period has expired.  On the active nodes, it works fine.  I don't think its to do with the cluster, more that SSIS itself wasn't originally installed on the active nodes.  We installed it later.  On Friday we uninstalled and reinstalled SSIS on the passive nodes making sure that we using the correct install media but nothing has changed.  We also tried failing over and running again with the same results (failed on the now-active nodes)
Interestingly I can run the package from SSMS using the Execute Package Utility on the problem nodes.  But calling it from the .net API doesn't work.  Any ideas?  I can't find anything!  Code for the API call below...
thanks!
Ben
Package pck;

DTSExecResult execResult;

Application app = new Application();

//Load package from SQL Server

pck = app.LoadFromSqlServer(jobParams.SSISPackagePath, jobParams.ServerName, null, null, null);

//Assign values to the package variables

pck.Variables["FlatFileInputPath"].Value = destinationFilePath;

//Execute the package

logger.WriteInfo("Started executing SSIS package...");

execResult = pck.Execute(null, null, new SSISEventsSink(logger), null, null);

A:

Bingo; SSIS tells which edition it is by looking at the registry key at 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90

Our server hardening process removed the inherited permission for the users group to have read access to this key.  Instead of giving an error that it couldn't read this key, it decided it was an evaluation copy and as we'd had it 180 days since install, it had expired.  
Restoring permisisons to the specific account fixed the issue.

