Content Management Server 2002 Service Pack 2 installation information (906145)



The information in this article applies to:

  • Microsoft Content Management Server 2002 SP2

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

MORE INFORMATION

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.
  4. Select Repair, and then click Next.
  5. 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.
  6. 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.
  4. 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.x 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.x

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

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

  3. Type aspnet_regiis -i, and then press ENTER.
  4. Type iisreset, and press ENTER to restart IIS.

The .NET Framework 2.0

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

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

  3. Type aspnet_regiis -i, and then press ENTER.
  4. Type iisreset, and press ENTER to restart IIS.

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:
  1. Copy the template files to the Visual Studio 2005\Templates folder:
    1. Copy all .zip files in the following folder:

      MCMS Installation Path\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

    2. Copy all .zip files in the following folder:

      MCMS Installation Path\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

    3. Copy all .zip files in the following folder:

      MCMS Installation Path\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

    4. Copy all .zip files in the following folder:

      MCMS Installation Path\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

  2. Open a Visual Studio 2005 Command Prompt window.
  3. Type devenv /setup, and then press ENTER.

    Note This step processes the template paths and registers the MCMS 2002 VSIP package.

REFERENCES

For more information about the ASP.NET IIS Registration tool, visit the following Microsoft Developer Network (MSDN) Web site:For more information about side-by-side support in ASP.NET, visit the following MSDN Web site:For more information about Visual Studio 2005, visit the following MSDN Web site:

Modification Type:MajorLast Reviewed:11/8/2005
Keywords:kbhowto kbContentMgtServ2002SP2Fix kbinfo KB906145 kbAudITPRO kbAudDeveloper