Microsoft KB Archive/906145

= Content Management Server 2002 Service Pack 2 installation information =

Article ID: 906145

Article Last Modified on 5/11/2007

-

APPLIES TO


 * Microsoft Content Management Server 2002 Service Pack 2

-





INTRODUCTION
This article contains installation information for Microsoft Content Management Server (MCMS) 2002 Service Pack 2 (SP2).

For more information about how to obtain the Content Management Server 2002 service packs, click the following article number to view the article in the Microsoft Knowledge Base:

906142 How to obtain the latest Content Management Server 2002 service pack



MCMS 2002 SP2
This service pack updates installations of MCMS 2002 Service Pack 1a (SP1a). MSCMS 2002 SP2 includes several software updates that were released during the last two years. Also, MCMS 2002 SP2 includes support for the Microsoft .NET Framework 2.0, for Microsoft Visual Studio 2005, for Microsoft SQL Server 2005, and for 64-bit processing.

MCMS 2002 SP2 does not install new features. MSCMS 2002 SP2 only updates features that you have installed together with MCMS 2002 SP1a. For example, if you have not installed the Developer Tools feature, MSCMS 2002 SP2 will not install this feature for you. However, if you have installed the Developer Tools feature in the MSCM 2002 SP1a site, MSCM 2002 SP2 will update this feature so that it works with Visual Studio 2005.

If you have not installed the Developer Tools feature, or if you have installed MCSM 2002 SP2 without the Developer Tools feature, you must follow these steps before you can use the Developer Tools feature:
 * 1) If you have previously installed MCSM 2002 SP2, uninstall it.
 * 2) Make sure that you have Microsoft Visual Studio .NET 2003 or Microsoft Visual Studio .NET 2002 installed.
 * 3) In Add/Remove Programs, click Microsoft Content Management Server SP1a, and then click Change/Remove.

Note Make sure that you have the MCMS 2002 SP1a CD or other SP1a installation media available.
 * 1) Select Repair, and then click Next.
 * 2) In the list of features that you can add, select Developer Tools, and then click Next. Complete the installation process for the Developer Tools feature.
 * 3) When you have finished installing the Developer Tools feature, install MCMS 2002 SP2.

MCMS 2002 SP2 and Microsoft Visual Studio 2005
MCMS 2002 Visual Studio projects are now Visual Web Developer projects in Visual Studio 2005. When you upgrade a MCMS 2002 project in Visual Studio .NET 2003 to Visual Studio 2005, the Visual C# or Visual Basic project becomes a Web site project. This change affects MCMS 2002 in the following ways:
 * MCMS 2002 projects now support both Visual C# and Visual Basic pages in the site.
 * MCMS 2002 only supports the Local IIS type of Web site project. The File-based type, the Remote IIS type, and the FTP type are not supported.

Because MCMS projects are now Visual Web Developer projects in Visual Studio 2005, you should build MCMS 2002 projects by using the Build Web site option instead of the Build Solution option on the Build menu. If you build MCMS 2002 projects by using the Build Solution option, you may notice many squiggly red underlines that indicates syntax errors in the source view of the MCMS 2002 Templates.

Note These underlines do not indicate actual syntax errors.

The wizards for MCMS 2002 Web sites in Visual Studio 2005 use the new wizard template framework. This framework provides more flexibility when you use and access the templates. There are two types of templates, Project Templates and Item Templates. Visual Studio 2005 has its own installed templates. However, you can specify where you want your custom templates to be located. You can do this by using the Options menu in Visual Studio 2005.
 * 1) Click Tools, and then click Options.
 * 2) Expand Projects and Solutions, and then click General.
 * 3) By default, the template locations point to My Documents. Change the location in the Visual Studio user project templates location box and in the Visual Studio user item templates location box. Type any path that you want on the computer.

Note If you use a file share, many developers can share the same templates.
 * 1) Click OK.

In Visual Studio 2005, the Flow layout is the default layout in Design view. In earlier versions of Visual Studio .NET, the Grid layout is the default layout. To use absolute positioning when you add MCMS 2002 placeholder controls in Design view, follow these steps:
 * 1) Click Layout, click Position, and then click Auto Position Options.
 * 2) In the form, click to select the Change Positioning to the following for controls added using the Toolbox, paste, or drag and drop check box.
 * 3) Select Absolutely positioned in the list.
 * 4) Click OK.

Register ASP.NET in IIS
If you run the .NET Framework 2.0 and the .NET Framework 1. side by side, make sure that you register the correct version of Microsoft ASP.NET for your Web applications. To register ASP.NET in Microsoft Internet Information Services (IIS), follow these steps.

The .NET Framework 1.
 Click Start, click Run, type cmd, and then click OK. Locate the following directory:

%WindowsDirectory% \Microsoft.NET\Framework\v1. . \

 Type aspnet_regiis –i, and then press ENTER. Type iisreset, and press ENTER to restart IIS.

The .NET Framework 2.0
 Click Start, click Run, type cmd, and then click OK. Locate the following directory:

%WindowsDirectory% \Microsoft.NET\Framework\v2.0.50727\

</li> Type aspnet_regiis –i, and then press ENTER.</li> Type iisreset, and press ENTER to restart IIS.</li></ol>

MCMS 2002 SP2 and Microsoft SQL Server 2005
If you use Microsoft SQL Server utilities to transfer your MCMS 2002 database from Microsoft SQL Server 2000 to SQL Server 2005 after you install MCMS 2002 SP2, you must run the following script on the SQL Server 2005 MCMS 2002 database: IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'CreateBackgroundProcessingJob') BEGIN PRINT 'Dropping Procedure CreateBackgroundProcessingJob' DROP Procedure  dbo.CreateBackgroundProcessingJob END

GO

PRINT 'Creating Procedure CreateBackgroundProcessingJob' GO

CREATE Procedure dbo.CreateBackgroundProcessingJob (       @databaseName sysname        ,@jobName sysname         )

AS

/** * This stored procedure is used to create a job to perform the background * processing. The DCA runs this stored procedure for every database when * the database is created or upgraded. * * @param  @databaseName       Name of the database to create the job for * @param  @jobName out        Name of the job created * * @return 0 -     Success *         1 -     Failure *         100 -   The job already exists */

begin

set nocount on   declare @tranCount int ,@jobId uniqueidentifier ,@outputFileName nvarchar(250) ,@jobStepCommand nvarchar(512) ,@new_job_created tinyint --localizable strings declare @localized_string_InvalidInputParameter as nvarchar(128) set @localized_string_InvalidInputParameter = N'Invalid input parameter' declare @localized_string_JobDescription as nvarchar(128) set @localized_string_JobDescription = N'Purge expired information from MCMS tables' declare @localized_string_JobStep_ExpiredPages as nvarchar(128) set @localized_string_JobStep_ExpiredPages = N'Process expired pages' declare @localized_string_JobStep_DanglingPages as nvarchar(128) set @localized_string_JobStep_DanglingPages = N'Purge content for deleted pages' declare @localized_string_JobStep_GalleryBasedResources as nvarchar(128) set @localized_string_JobStep_GalleryBasedResources = N'Update gallery based resources'

declare @localized_string_JobStep_DanglingBLOBs as nvarchar(128) set @localized_string_JobStep_DanglingBLOBs = N'Purge data for deleted resources'

declare @localized_string_JobStep_DanglingACL as nvarchar(128) set @localized_string_JobStep_DanglingACL = N'Purge deleted rights groups from container ACLs'

declare @localized_string_JobAlreadyExists as nvarchar(128) set @localized_string_JobAlreadyExists = N'The job already exists' --validate input if isnull(@databaseName, ) =  or isnull(@jobName, ) =  begin raiserror(@localized_string_InvalidInputParameter, 15, 1) return (1) end --the job Name is the database Name prepended with 'BGP-' --set @jobName = cast('BGP-' + @databaseName as sysname)

--check whether we have to create a category for BGP jobs IF not exists (select 1                   from msdb.dbo.syscategories                    where (category_class = 1 /*local*/)                    and (name = 'MCMS Background Processing')) begin exec msdb.dbo.sp_add_category @class = 'JOB' ,@Type = 'LOCAL' ,@Name = 'MCMS Background Processing' if @@error <> 0 return (1)   --failure end

set @new_job_created = 0 --start a new transaction if the caller has not started one set @tranCount = @@trancount if @tranCount > 0 save tran CreateBGPJob_tran else begin tran CreateBGPJob_tran

--if the job already exists for this database, clear up all job steps if exists (select 1               from msdb.dbo.sysjobs_view                where name = @jobName                and originating_server = lower(CONVERT(NVARCHAR(30), SERVERPROPERTY('ServerName')))) begin declare @stepcount int select @jobId = job_id from msdb.dbo.sysjobs_view where name = @jobName and originating_server = lower(CONVERT(NVARCHAR(30), SERVERPROPERTY('ServerName'))) select @stepcount = count(*) from msdb.dbo.sysjobsteps where job_id = @jobId while @stepcount > 0 begin exec msdb.dbo.sp_delete_jobstep @job_name = @jobName, @step_id = @stepcount if @@error <> 0 return (1)   --failure set @stepcount = @stepcount -1 end end else begin --create a new job exec msdb.dbo.sp_add_job @job_name = @jobName ,@enabled = 1 ,@description = @localized_string_JobDescription ,@category_name = 'MCMS Background Processing' ,@job_id = @jobId output if @@error <> 0 goto errorhandler set @new_job_created = 1 end

set @outputFileName = '[SQLDIR]\JOBS\BGP-' + @databaseName + '-[STRTDT]-[STRTTM].log' --process expired pages exec msdb.dbo.sp_add_jobstep @job_id = @jobId ,@step_name = @localized_string_JobStep_ExpiredPages ,@subsystem = 'TSQL' ,@command = 'exec bgp_ProcessExpiredNodes' ,@on_success_action = 3 ,@on_fail_action = 3 ,@database_name = @databaseName ,@output_file_name = @outputFileName ,@flags = 2 if @@error <> 0 goto errorhandler

--gallery based resources exec msdb.dbo.sp_add_jobstep @job_id = @jobId ,@step_name = @localized_string_JobStep_DanglingPages ,@subsystem = 'TSQL' ,@command = 'exec bgp_DeleteDanglingPages' ,@on_success_action = 3 ,@on_fail_action = 3 ,@database_name = @databaseName ,@output_file_name = @outputFileName ,@flags = 2 if @@error <> 0 goto errorhandler

--gallery based resources exec msdb.dbo.sp_add_jobstep @job_id = @jobId ,@step_name = @localized_string_JobStep_GalleryBasedResources ,@subsystem = 'TSQL' ,@command = 'exec bgp_UpdateGalleryBasedResources' ,@on_success_action = 3 ,@on_fail_action = 3 ,@database_name = @databaseName ,@output_file_name = @outputFileName ,@flags = 2 if @@error <> 0 goto errorhandler

--dangling ACLs exec msdb.dbo.sp_add_jobstep @job_id = @jobId ,@step_name = @localized_string_JobStep_DanglingACL ,@subsystem = 'TSQL' ,@command = 'exec bgp_DeleteDanglingACL' ,@on_success_action = 3 ,@on_fail_action = 3 ,@database_name = @databaseName ,@output_file_name = @outputFileName ,@flags = 2 if @@error <> 0 goto errorhandler

--dangling BLOBs exec msdb.dbo.sp_add_jobstep @job_id = @jobId ,@step_name = @localized_string_JobStep_DanglingBLOBs ,@subsystem = 'TSQL' ,@command = 'exec bgp_DeleteDanglingBLOBs' ,@on_success_action = 1 ,@on_fail_action = 2 ,@database_name = @databaseName ,@output_file_name = @outputFileName ,@flags = 2 if @@error <> 0 goto errorhandler

--set the second job step as the start step because, by default, we do not --process expired postings exec msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 2 if @new_job_created > 0 begin --set the schedule exec msdb.dbo.sp_add_jobschedule @job_id = @jobId ,@Name = 'MCMS Background Processing Default' ,@enabled = 1 ,@freq_type = 4 ,@freq_interval = 1 ,@active_start_time = 10000 if @@error <> 0 goto errorhandler

--notify the SQL Server Agent exec msdb.dbo.sp_add_jobserver @job_id = @jobId ,@server_name = N'(local)' if @@error <> 0 goto errorhandler end --commit if we started our own transaction if @tranCount = 0 commit tran CreateBGPJob_tran return(0) errorhandler: if @@trancount > 0 rollback tran CreateBGPJob_tran return(1)

end GO

GRANT EXEC ON dbo.CreateBackgroundProcessingJob TO CMSSystem GO

MCMS 2002 SP2 post-installation steps
After you install MCMS 2002 SP2, you must follow these steps to make the templates available in Visual Studio 2005:  Copy the template files to the Visual Studio 2005\Templates folder:  Copy all .zip files in the following folder:

\DevTools\NewProjectWizards80\Visual Web Developer\CSharp\1033

Copy these files to the following folder:

My Documents\Visual Studio 2005\Templates\ProjectTemplates\Visual Web Developer\CSharp\1033

</li> Copy all .zip files in the following folder:

\DevTools\NewProjectWizards80\Visual Web Developer\VisualBasic\1033

Copy these files to the following folder:

My Documents\Visual Studio 2005\Templates\ProjectTemplates\Visual Web Developer\VisualBasic\1033

</li> Copy all .zip files in the following folder:

\DevTools\NewItemWizards80\Visual Web Developer\CSharp\1033

Copy these files to the following folder:

My Documents\Visual Studio 2005\Templates\ItemTemplates\Visual Web Developer\CSharp\1033

</li> Copy all .zip files in the following folder:

\DevTools\NewItemWizards80\Visual Web Developer\VisualBasic\1033

Copy these files to the following folder:

My Documents\Visual Studio 2005\Templates\ItemTemplates\Visual Web Developer\VisualBasic\1033

</li></ol> </li> Open a Visual Studio 2005 Command Prompt window.</li> Type devenv /setup, and then press ENTER.

Note This step processes the template paths and registers the MCMS 2002 VSIP package.</li></ol>

<div class="references_section">