Microsoft Content Management Server (MCMS) FAQ

This is a collection of questions and answers about Microsoft® Content Management Server (MCMS) gathered from the MCMS newsgroup. This content is provided "AS IS" with no warranties, and confers no rights. If you have feedback about one of these topics or would like to add information, please post your comments to the MCMS newsgroup.

Thank you,

Stefan Goßner
Escalation Engineer 		Steve Cawood
Program Manager

About This FAQ

Legal Text

MCMS 2002

MCMS Glossary

© Microsoft Corporation. All rights reserved.


About This FAQ

What this FAQ is about

This FAQ is intended to help diagnose and resolve problems with Microsoft Content Mangement Server. Topics range from installation issues to programming tips for the CMS API.
The FAQ is also meant to be used as a supplement to the user documentation supplied with MCMS. If you are not able to find the information that you require, please refer to the user documentation.
Authors of this guide assume that you are familiar with MCMS and programming with the MCMS API. Please refer to the API documentation for more information about specific methods and properties.

How this guide was created

All the topics are created as pages on a live MCMS .NET site. All of the content contribution (web based WYSIWYG authoring), workflow, etc is handled by MCMS. This has the added bonus of providing a live web version of the FAQ.

Microsoft internally the content of this site is also available as an RSS feed. A sample how to build such an RSS feed is available in this FAQ. Search for RSS.

Steps to publish the FAQ:

  1. The Table of Contents is generated by the MCMS API.
  2. HTM files are created using an automated tool (e.g. Site Stager could be used for ASP sites).
  3. The Microsoft Help workshop utility compiles the CHM using the TOC and the HTMs.

For more information about Microsoft Content Management Server 2002

Refer to the MCMS home page and the MCMS newsgroups:


Legal Text

The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.
This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.

Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

© 2003 Microsoft Corporation. All rights reserved.

Microsoft, ActiveX, Visual Studio, Windows, and Windows Server are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

The names of actual companies and products mentioned herein may be the trademarks of their respective owners.


MCMS Glossary

Authoring Connector - a wizard that allows Microsoft® Content Management Server (MCMS) users to publish to MCMS directly from Microsoft Word.

Page - In MCMS 2001 this is where you would have added/edited content. In MCMS 2002 'Page' and 'Posting' are used interchangeably.
Placeholder - Areas within a template where content can be edited.
Placeholder Collection - The list of placeholders (and the placeholder attributes) that is stored in the MCMS database.
Posting - This is what people see when they browse a MCMS site. A posting is a combination of a template and content. In MCMS 2002 'Page' and 'Posting' are used interchangeably.
Resource - A file stored in a MCMS Resource Gallery.
Site Manager - The Win32 client tool that is used to administer a MCMS site (formerly known as the 'Site Builder').
Site Stager - Am MCMS utility that allows one to produce an HTML (or ASP) flat file version of an MCMS ASP site. This utility does not work with .Net sites.
Template - Used to create the look and feel of your site. In MCMS 2002, a template is the combination of a template file (ASP or ASPX) and a Template Gallery Item (TGI).
Template Gallery Item - A TGI is the part of a template that is stored in the MCMS database. The TGI includes information such as the placeholder collection. TGIs are manipulated through the MCMS Microsoft Visual Studio® .NET integration.
WBC - Web Browser Client. Former name for the Web Author.
Web Author - The MCMS thin client interface that allows site editing through Internet Explorer.


MCMS 2002

This FAQ contains the most common questions and answers for MCMS 2002.

Administration

Architecture

Authoring Connector

Clustering

DCA

Debugging

General

Installation

Migration

Performance

Publishing API ASP

Publishing API ASP.NET

SCA

Search

Security and Rights

SharePoint Portal Server Integration

Site Deployment

Site Manager

Site Stager

Visual Studio .NET

Web Author

Woodgrove Sites

Workflow


Administration

This section deals with Microsoft® Content Management Server (MCMS) management and administration questions.

Client certificate mapping

Console disappears with Windows authentication

Delayed Web requests when MCMS server is disconnected from SQL Server

Deleted attachments

How to create a Posting in the root of a Web site

How to enable HTTP compression with MCMS

Identifying MCMS patch level

Mapping two different host-header names to the same channel

Script error in Revision History when using HTTP compression in IIS 6


Client certificate mapping

November 12, 2003

Topic

Does client certificate mapping work with MCMS 2002?

Answer

Client certificates works fine with MCMS if the 'mapped user' is in a domain global group. It won't work if the 'mapped user' is in a domain local group. This is known problem for Internet Information Server (IIS). Here is the article that describes the problem in IIS:

http://support.microsoft.com/?kbid=324377


Console disappears with Windows authentication

November 13, 2003

Topic

When using Windows Authentication on my guest enabled MCMS Web site I sometimes loose the MCMS Web Author console. This does not happen with forms authentication. What's the problem here?

Answer

What you may be seeing is an undocumented behavior of Microsoft® Internet Explorer. If the browser remembers that the server required authentication, most of the time, it will send an NTLM preauth header.

Because of this, the user is authenticated and the MCMS Web Author is displayed. But this is not required behavior. Normally the browser will send requests as anonymous and only send the credentials if "401 authentication required" is returned.

Microsoft Internet Explorer remembers the state for a server and sends the authentication to avoid additional round trips. But if the browser receives a 4xx or 5xx response (e.g. 404 page not found or 500 server error) Internet Explorer falls back to anonymous. This is a Microsoft Internet Explorer issue and it is by design.

If Forms authentication is not an option, you should use a second read-write web entry point for authors. Anonymous access should be disabled for this entry point. Your subscribers can use a read-only anonymous enabled web entry point.


Delayed Web requests when MCMS server is disconnected from SQL Server

May 8, 2003

Topic

I have delays of around 45 seconds for every Web request to my server for all Web sites. This occurs regardless of whether they are MCMS entry points or not but it only happens if my machine is disconnected from the SQL server. In the application event log the following messages are logged:

Warning: Connection 00D314C8 <[Microsoft][ODBC Microsoft SQL Server Driver][DBNETLIB]Microsoft SQL Server does not exist or access denied.>{State=08001 NativeCode=17}.

Information: Connection 00D314C8 <[Microsoft][ODBC Microsoft SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()).>{State=01000 NativeCode=1231}.

Answer

The MCMS filter catches every request and checks against Microsoft SQL Server™ if it is referencing a MCMS object. If it is an MCMS object the request will be handled by MCMS - otherwise the request is passed unchanged to Internet Information Server (IIS). When the SQL server cannot be found, the ISAPI filter is not able to decide what to do.

Possible workarounds:

  1. Have a local SQL server with an empty MCMS database which can be used while you are offline. This way the non-MCMS requests will be served without delay.
  2. Alternatively, you could remove the MCMS ISAPI filters while the server is disconnected.


Deleted attachments

August 6, 2002

Topic

I am worried about space used by resources put into MCMS and then deleted particularly about attachments. When you put some attachments into a posting, and then delete the attachments (or the whole posting), the URLs of the attachments are still valid.

When are the resources used by attachments (either on disk or in the DB) freed up?

Answer

MCMS Background processing deletes unused resources. This process is configurable in the SCA.


How to create a Posting in the root of a Web site

February 22, 2004

Topic

Is it possible to create postings in the root of a Web site? Currently I'm using an ASPX page in the root of my website and do a redirect to http://servername/Channels.

Answer

Yes this is possible by using the "map channel names to host header names" feature. For details check out this article:

326783 - HOWTO: Enable the Map Channel Names to Host Header Names Feature

Note: this feature is not available in CMS 2002 Standard Edition


How to enable HTTP compression with MCMS

May 10, 2005

Topic

I would like to use http compression with MCMS. What do I have to do to enable this?

Answer

  1. In IIS, right-click the "Web Sites" node --> Properties.
  2. Select the "Service" tab.
    • Check the "Compress application files" checkbox
    • Check the "Compress static files" checkbox
  3. By default, IIS does not compress .aspx files as "application files". You need to change the metabase. Follow the hints in the article below for information on how to achieve this:

    322603 - HOW TO: Enable ASPX Compression in IIS


Identifying MCMS patch level

February 22, 2004

Topic

Is there a way to verify the patch level of a MCMS server? This should include checking of service packs and the most updated security hotfixes.

Answer

This check is now included in the Microsoft Baseline Security Analyzer v1.2.

If you would like to do a manualy quick check you could check the registry to determine which patches have been applied. In the registry check the following keys:

"HKLM\Software\NCompass\Resolution Content Server\VersionInfo" "Patches"

Example:

(for MCMS 2001)

MCMS 2001 + SP1: Patches = MCMS 2001 SP1
MCMS 2001 + SP1+SRP1: Patches = 2001 SP1+SRP1
MCMS 2001 + SP1+SRP2: Patches = MCMS 2001 SP1+SRP2
MCMS 2001 + SP1+SRP1+SRP2: Patches = MCMS 2001 SP1+SRP1+SRP2

(for MCMS 2002)

MCMS 2002 + SP1: Patches = SP1
MCMS 2002 + SP1a: Patches = SP1a


Mapping two different host-header names to the same channel

February 9, 2003

Topic

How can I map two different host-header names (e.g. www.mysite.com and mysite.com) to the same channel?

Answer

This cannot be achieved out of the box. But here are two possible workarounds for this problem:

  1. Create a custom error page that examines the domain and redirects the user to the correct page with the correct domain. This will change the URL for the user. The error page can be dynamic (i.e. only requested when the wrong domain used), and can be edited and saved without difficulty.
  2. Add an ISAPI filter or HTTP Module to the site that will preprocess the requested URL (e.g. changing www.mysite.com to mysite.com). This can happen transparent to the user, the down side is it executes every time and should not be a dynamic list otherwise overall performance is affected. The list would be static and need to be recompiled as new entries are added.

    A ready-to-use ISAPI filter that can do this can be found here: http://www.isapirewrite.com/.

    Below is an example for how to configure the httpd.ini file for this ISAPI filter.
[ISAPI_Rewrite]
# Canonicalize Host-Headers
RewriteCond  Host:  www\.mysite\.com
RewriteHeader Host: .* mysite\.com

In order to get this method working you need to ensure that the following hotfix is installed to ensure that MCMS does not return absolute URLs including the host name:

824597 - Absolute URL Is Returned When You Use the Channel.Url Method of the PAPI and Host Headers Are Enabled


Script error in Revision History when using HTTP compression in IIS 6

May 10, 2005

Topic

In Internet Information Server (IIS) 6.0 with HTTP Compression turned on, the Revision History dialog throws some Javascript errors when comparing differences between 2 pages. (With HTTP compression turned off it works as expected without errors)

Is there a fix for this?

Answer

There is an hotfix to resolve this:

867755 - Content in Web pages does not appear as expected, or you receive script error messages, after you turn on dynamic HTTP compression for Web sites that use ISAPI filters in Internet Information Services 6.0


Architecture

The section addresses questions surrounding the architecture of Microsoft® Content Management Server (MCMS) 2002.

How is the disk cache integrated with MCMS?

How is the Node Cache affected by database import?

MCMS 2002 Standard Edition for production and Enterprise Edition for authoring

Postings and channels with identical path

Server.Transfer vs. Response.Redirect

What are new improvements in MCMS 2002?

What language was used to create MCMS


How is the disk cache integrated with MCMS?

November 18, 2003

Topic

How does the MCMS disk cache work?

Answer

When a web request to a MCMS object comes in, the MCMS ISAPI filter, Reauthfilt.dll will be notified. The filter will parse the HTTP request headers and the URL information.

An MCMS session will be created. Behind the scenes, the MCMS server core component, 'AEServerObject' will process the information from ISAPI calls.

MCMS will check if item exists in the resource cache on Rdonlyres or not by interacting with the 'AESecurityService' process.

If a resource requested from the incoming URL does not exist, MCMS will copy the resource into the rdonlyres folder. This avoids additional round trips to the MCMS SQL database for future requests.

If the disk cache is filled up by more than 90% of the specified limit a clean-up process will start and remove least recently used items. The clean-up will stop at 75% of the specified limit.

Understanding the process will help you to isolate where MCMS failed to write the cached data in the rdonlyres folder.


How is the Node Cache affected by database import?

May 27, 2003

Topic

How is the node cache refreshed? For example, if I have all my nodes in the cache, then I make a change (e.g. an import). Is the node cache actively managed? Will MCMS mark the affected nodes as changed?

Answer

The MCMS node cache is a map of node GUIDs to nodes. The nodes at this level are totally independent of each other. A change to one does not impact any others. When a change to a particular node is detected (i.e. an entry in the database change table), the node is tossed out of the cache and is re-read when it is next requested.

When a change to any node is detected, the upper level (output, fragment, etc.) caches are cleared, because we don't know the dependencies involved. For example, what URLs are invalid because of a name or state change, what additional channels have to be added to navigation, etc.

The MCMS server checks for updates in the database once every 6 seconds during normal runtime - and on the start of each session in design time. This way, we can make sure that edits are always occurring with the current data and also prevent production database stress.


MCMS 2002 Standard Edition for production and Enterprise Edition for authoring

December 8, 2003

Topic

We would like to use MCMS 2002 Standard Edition as production server and MCMS 2002 Enterprise Edition as authoring server to allow more than 15 authors to be used and to keep costs low. Load balancing is not required and authoring will not be done on the production server. Is this possible?

Answer

Yes this is possible under the following cirumstances:

  1. it is not possible to connect more than one machine using MCMS 2002 Standard Edition to the same MCMS repository
  2. if more than 15 non-subscriber users (or an AD group is assigned to a user role) MCMS 2002 Standard Edition will run in violation mode which means only a MCMS administrator can connect using Site Manager and only MCMS subscribers will be able to browse the site. Authoring is not possible.


Postings and channels with identical path

June 8, 2005

Topic

MCMS allows to create postings and channels with identical name side by side so that both end up with the same path. Can this "feature" savely be used or are there any problems if I have a channel with identical name beside a posting?

Answer

Using identical channel and posting names side by side is highly not recommended. This can cause problems with your application logic as it is not predictable which object is returned when using Searched.GetByPath as both objects have the same path.

In addition links to postings or channels which have non-unique parts in the path can cause problems with the MCMS link management feature as the algorithm analyzing the URL might end up at the wrong object and might not find the item in the respository (similar problem as with GetByPath). Then the link is stored as unmanaged link and not as managed link which will cause problems when the site structure is changed (e.g. moving postings to other channels).

/Channels/
/AAA <--- Posting
/AAA <--- Channel
/B <--- Posting

A link to posting B might be stored as unmanaged link if the algorithm analyzing the URL (/AAA/B) first finds the posting AAA and not the channel AAA)


Server.Transfer vs. Response.Redirect

November 13, 2003

Topic

Is it possible to use Server.Transfer with MCMS 2002?

Answer

No this is not possible. MCMS requires that all requests pass the ISAPI filter to create the correct CmsHttpContext for the requested item. Server.Transfer bypasses the ISAPI filter. You need to use Response.Redirect instead.


What are new improvements in MCMS 2002?

October 8, 2002

Topic

Which enhancements does MCMS 2002 provide compared with MCMS 2001?

Answer

These are some of the main enhancements in MCMS 2002:

  1. .NET - the big bet for MCMS 2002 is .NET. With support for ASPX comes integrated debugging in Microsoft Visual Studio® .NET and impressive flexibility in code (you can use C# or Visual Basic .NET etc).
  2. Security - an awful lot of work has been done in this area. Most notably, the secure install feature (files used for writing are not installed). This significantly decreases the attack surface of MCMS.
  3. Microsoft Visual Studio .NET integration - developers can use Microsoft Visual Studio .NET to work on templates and debug MCMS applications.
  4. XML Support - an 'XMLPlaceholder' object type has been added to MCMS 2002. Customers can create their own XML placeholders and use them with XML Web services.
  5. Performance
    - MCMS 2002 uses a new memory manager from Microsoft Research. This has made a significant difference in some cases.
    - ASP.NET output caching is a huge benefit
  6. Placeholders - customers can now create their own custom placeholder controls. These are .NET server controls.
  7. Site Manager - performance has been improved and this is making a notable difference with some customer databases.
  8. CmsApplicationContext - a new feature of the MCMS managed API is the application context. Customers can now create Windows applications (and console applications) that run on the MCMS server.


What language was used to create MCMS

February 13, 2004

Topic

What programming languages were used to create MCMS 2002 SP1a?

Answer

MCMS has been around for many years so there is a wide variety of technology involved.

Here is the breakdown:

MCMS Server - C++
DB Stored Procs - SQL
COM PAPI - C++
.Net PAPI - C#
Site Manager - VB
Site Manager proxy - J#
Web Author - both ASP (VBScript) and ASP.Net (C#) versions ship with MCMS 2002


Authoring Connector

"400 bad request" and "502 Error response received from gateway" errors

"500 server error" after .NET framework 1.1 is installed

"Send To MCMS" menu item in Microsoft Word is missing or greyed out

An empty task list is displayed in the wizard

Changing publishing server

Document published using Authoring Connector looks different as in Word

Error message: "Requested Resource not found"

New publishing task not available in Authoring Connector

Updating an existing page that was previously published using Authoring Connector fails

Value cannot be null

When I select the "Send To MCMS..." menu item in Word nothing happens


"400 bad request" and "502 Error response received from gateway" errors

February 7, 2005

Topic

When using Authoring Connector I received "400 bad request" and "502 Error response received from gateway" errors. How can I correct this?

Answer

This is most likely the problem discussed in the following KB article:

810957 - You receive more than one "400 bad request" response to one HTTP request in IIS

Background information for the UploadReadAheadSize metabase property discussed in the article can be found here:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/8b7978ef-2034-4301-a432-29bc90508e8c.asp


"500 server error" after .NET framework 1.1 is installed

August 7, 2003

Topic

I have Authoring Connector installed on a client machine with the MCMS server it points to just upgraded to .NET Framework 1.1 and MCMS SP1. Now when I go to create a page with MCMS Authoring Connector on my client machine I get a 500 server error.

Answer

The .NET Framework ships with a new feature to identify potentially harmful content in post requests. MCMS expects such content so this feature needs to be disabled.

These changes require that you modify the web.config file for your MCMS applications (e.g. '\Program Files\Microsoft Content Management Server\Server\MCMS\web.config' and '\Program Files\Microsoft Content Management Server\Sample Data\WoodgroveNet\web.config').

Add/modify this line:

<pages smartNavigation="false" validateRequest="false" />


"Send To MCMS" menu item in Microsoft Word is missing or greyed out

February 8, 2003

Topic

The "Send To MCMS" menu item in Microsoft® Word is missing or grayed out

Answer

Here are some things to consider:

  1. The add-in was not registered properly. Make sure the installation is successful, and accept any security dialogue that asks if the add-on is allowed.
  2. There was another Microsoft® Word process running in the background during Authoring Connector client installation. Terminate all instances of Word before installing Authoring Connector client.
  3. It may be a security problem. After you have installed Authoring Connector open up Word and Click on Tools \ Macro \ Security and click on "Trust all installed add-ins and templates".


An empty task list is displayed in the wizard

February 8, 2003

Topic

An empty task list is displayed in the Authoring Connector wizard.

Answer

Here are some things to consider:

  1. The publishing task list may be invalid. Make sure the task list is properly configured. Double-check the syntax of the XML file, and the path for channels and template gallery items.
  2. The user may not have rights to any channels or template gallery items referenced in the tasks. Make sure the user has rights to the referenced templates and channels.
  3. The publishing task file may not be placed in the proper location. Make sure the published task list (XML file) is stored in the right place. The task list, by default, is stored under '$CMSroot\server\IIS_CMS\OfficeWizard\Publishing Tasks.xml'. However, this default location can be changed in the web.config for Authoring Connector.


Changing publishing server

April 10, 2003

Topic

Is it possible to change the server that Microsoft® Word docs are pointing to? I would like to do this without having to open each document and change the server using the Authoring Connector? I created a lot of word docs to use with the Authoring Connector. When I move them to production, even if I set the default server in Authoring Connector to be the new production server the Word doc is still trying to replace the page on the staging server.

Answer

Authoring Connector stores the MCMS published server URL in a custom document property ('CmsServerUrl'). You could write a VB script to point this custom property to the new MCMS server. This would eliminate the need to manually launch Word, invoke Authoring Connector and publish the doc to the new MCMS server.

But please keep in mind that this is unsupported. In a future release, this custom property could change.


Document published using Authoring Connector looks different as in Word

July 30, 2004

Topic

I'm using Authoring Connector to publish some Microsoft® Word documents but the document looks completly different. How can I resolve this?

Answer

Authoring Connector uses the "Save as Html (Filtered)" function of Word. The final appearance is determined by this function.

Please perform the following test:

  1. open the document in word
  2. save the document using the "Save as Html (Filtered)" or "Web Page, Filtered (*.htm; *.html)" option (depending on your Word version).
  3. open the resulting html file in Internet Explorer.

The result you receive here is the optimum you can achieve using Authoring Connector.

If this result still looks better than the results in Authoring Connector, then most likely the style sheet applied to the template does not fit the content sent by Authoring Connector.

To improve the results, you need to apply the style sheet used by Word when generating the html page.

Please open the html page generated before in notepad and copy the <style>...</style> section to a text file with the extension .css and add it to your template project.

Then add this style sheet to the template you are using to publish this document. Now the look and feel in the posting should be as good as the result you got when saving the document using the "Save as Html (filtered)" option.


Error message: "Requested Resource not found"

February 8, 2003

Topic

I get an error saying "requested resource not found" when trying to proceed from the Authoring Connector 'Welcome' screen to the next dialog.

Answer

Here are some things to consider:

  1. The connecting server string may not be correctly configured. Make sure the connecting server path is correct. (e.g. http://servername/MCMS/cms/OfficeWizard/oc.aspx)
  2. The MCMS server may not be available.


New publishing task not available in Authoring Connector

April 10, 2003

Topic

I have added a new publishing task to the XML file, but it does not show up in the Authoring Connector Wizard. What could be wrong?

Answer

Here are some things to consider:

  1. Check in the web.config file which 'PublishingTask.xml' file is being used (refer to the MCMS documentation for details).
  2. Make sure that the Authoring Connector user has rights to the template and channel that the new task specifies. Authoring Connector will filter out tasks inaccessible to the current user.


Updating an existing page that was previously published using Authoring Connector fails

February 8, 2003

Topic

Updating an existing page (that was previously published) fails when I use the Authoring Connector. What could be wrong?

Answer

Here are some things to consider:

  1. Is the Web page still available in the server? Check to see if the page that Authoring Connector is updating is still available on the site.
  2. If the posting does exist, use the browse feature to find the posting, and then replace it.


Value cannot be null

April 8, 2003

Topic

500 server error in Authoring Connector. When I enter the URL in Internet Explorer I get a more detailed error message:

Value cannot be null. Parameter name: path2
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentNullException: Value cannot be null.
Parameter name: path2
Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[ArgumentNullException: Value cannot be null. Parameter name: path2]
System.IO.Path.Combine(String path1, String path2) +419
System.Web.FilePathParse..ctor(String path, Boolean isFile, Boolean getShortNames) +366
System.Web.FileChangesMonitor.StartMonitoringDirectoryRenamesAndBinDirectory(String dir, FileChangeEventHandler callback) +46
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +324

[HttpException (0x80004005): ASP.NET Initialization Error]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +926
System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +128

Answer

This is an ASP.NET issue. The solution for the issue is discussed in the Microsoft Knowledge Base article 316721


When I select the "Send To MCMS..." menu item in Word nothing happens

February 13, 2003

Topic

"Send To MCMS..." shows up but when I select it nothing happens. Also, when I click on "Help on MCMS Authoring Connector" in Word, nothing happens. What's wrong?

Answer

This is because Authoring Connector has been disabled. To enable it do the following:

  • Open a command line window and enter the following command: cd “Microsoft Content Management Server\Authoring Connector” then regsvr32 offcon.dll. This will register the required DLL as a COM component.
  • In Microsoft Word, select Tools from the menu bar. Then Click Macros, then Security and set the security settings to “low.” This is not necessary if offcon.dll is the original signed one and you selected trust it, but doing this ensures that Microsoft Word loads the macro.
  • Copy the content below in a text file named ac.reg and execute it to fix the Microsoft Word add-in registration of Authoring Connector.

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Word\Addins\Offcon.Connect]
    "Server"="/mcms/cms/OfficeWizard/oc.aspx"
    "LoadBehavior"=dword:00000003
    "Description"="Microsoft CMS Office Connector"
    "FriendlyName"="Microsoft CMS Office Connector"


Clustering

Microsoft® Content Management Server (MCMS) suppprts clustering of MCMS servers. Topics related to setup and management of MCMS server farms are covered here.

Affinity

Forms authentication keys not synchonized


Affinity

August 6, 2002

Topic

Is affinity ('single') required in a MCMS cluster?

Answer

This is only required if you are accessing the entire cluster with the Site Manger. If you only hit one of the cluster members with the Site Manager client, then you will be fine.

MCMS does not require affinity for forms authentication. As long as the encryption keys are all synchronized, then any of the servers in the cluster can handle an authentication ticket generated by other servers in the cluster.


Forms authentication keys not synchonized

April 29, 2004

Topic

I have setup an MCMS cluster using two MCMS server machines. When accessing each server separately, everything is fine. However, when accessing the cluster I see broken images.

The MCMS encryption keys are synchronized what did I miss?

Answer

Besides the MCMS encryption key, you also have to ensure that the ASP.NET encryption keys used to encrypt the authentication cookies are synchornized.

By default, these encryption keys are set to autogenerate. This will cause each machine to have a different encryption key. Therefore, only the machine that generated the encryption key will be able to decrypt the data.

To resolve this you need to follow the instruction in this article:

312906 - HOW TO: Create Keys by Using Visual C# .NET for Use in Forms Authentication


DCA

Credentials are not accepted in DCA on Windows XP

DCA log

Error message: "ActiveX component can't create object"

Error message: "Cannot create a file when that file already exists"

Error message: "error '76' - Path not found"

Error Message: "Failed to get connection string from ODBC."

Error message: "Invalid column name 'ID'"

Error message: "Method '~' of object '~' failed"

Error message: "Must Declare the varible @InsertedParentGuid"

Error message: "Rollback transaction request has no corresponding begin tran"

Error message: "Run-time error '91' - Object variable or With block variable not set"

Error message: "The roll back transaction request has no corresponding begin transaction"

Error message: "User or role 'CMSSystem' already exists in current database"

GPF in DCA

SQL Server database not available in the DCA


Credentials are not accepted in DCA on Windows XP

April 13, 2003

Topic

My credentials are not accepted when trying to enter the system account in the Database Configuration Assistant on Microsoft Windows® XP. What could be wrong?

Answer

This is an issue with the default XP security policy. To fix it, go to your Local Computer Policy and click Computer Configuration, Windows Settings, Security Settings, Local Policy, and then Security Options.

Change the "Network access: Sharing and security model for local accounts" setting to "Classic - local users authenticate as themselves".


DCA log

October 12, 2003

Topic

Where can I find a log of the Database Configuration Application (DCA)?

Answer

The default location for the DCA log is:

<system_drive>:\Program Files\Microsoft Content Management Server\LogFiles


Error message: "ActiveX component can't create object"

February 8, 2003

Topic

The DCA fails with the error message: "ActiveX component can't create object" or "automation error". What could be wrong?

Answer

The DCA requires Windows Script version 5.6. This error message occurs if Windows Script 5.6 is not correctly installed.

Either reinstall Internet Explorer 6 SP1 or download Windows Script 5.6 from the following location and reinstall it:

http://msdn.microsoft.com/downloads/default.asp?URL=/downloads/sample.asp?url=/msdn-files/027/001/733/msdncompositedoc.xml

Attention: this is necessary even if Windows Script 5.6 is already installed on the server.


Error message: "Cannot create a file when that file already exists"

September 4, 2003

Topic

When running the SCA or DCA, the following problem may be encountered:

An unknown error has occured
800700b7: Cannot create a file when that file already exists.
-2147024713
(ISOK File nrvirtualWeb site.cpp, Line 2335)

Answer

MCMS is trying to create an Internet Information Services (IIS) Metabase entry that already exists.

To resolve this problem remove the NR, CMS and/or MCMS virtual directory on the Web site you are trying to set the entry point to. Then run the SCA or DCA again.


Error message: "error '76' - Path not found"

January 30, 2004

Topic

After installing a hotfix, the DCA doesn't start up anymore - we get an error saying "error '76' - Path not found". The event log then shows some sort of VB error occured. We've tried un-installing the hotfix, but that does not fix the problem.

How can we get the DCA working again without re-installing MCMS?

Answer

This is a known problem with some hotfixes if your MCMS installation path differs from the standard path C:\Program Files\Microsoft Content Management Server.

Please ensure that the following registry keys points to your MCMS installation directory:

\HKLM\Software\NCompass\CmsInstallLocation
\HKLM\Software\NCompass\Resolution Content Server\dir


Error Message: "Failed to get connection string from ODBC."

September 7, 2004

Topic

I am getting the following error when I run the DCA. It occurs when I click the "Select Database" button. It appears as a popup, and in the event log as a VBRuntime error. Failed to get connection string from ODBC.

Failed to get connection string from ODBC.
Extended error: [What='Error in getting the ODBC connection'][LCID='1033'] [SourceFile='establishodbcconnection.cpp'][SourceFileLine='143'][DebugInfo=''][RecommendedAction=''] [ExtraInfo=''][UniqueErrorId='1'][Severity='5'][Source='NRDBHelper.dll'][CategoryId='0'] -2147352567 NRDBHelper.dll

How can I solve this problem?

Answer

There are two known reasons for this:

  1. the user running the DCA does not have the SeImpersonatePriviledge

    To assign impersonation privileges

    1. Click Start, click Control Panel, click Administrative Tools, and then click Local Security Policies.
    2. In the Local Security Settings window, expand Local Policies, click User Rights Assignment.
    3. In the User Rights Assignment folder, right-click Impersonate a client after authentication, and then click Properties.
    4. In the Properties dialog box, click Add User or Group.
    5. In the Select Users, Computers, or Groups dialog box, add the appropriate user or group, and then click OK.
    6. In the Properties dialog box, click OK.
  2. There is a known bug in MCMS. Please request the following hotfix from Micrsoft support:

    836259 - You receive an error message in the DCA when you select a database


Error message: "Invalid column name 'ID'"

February 8, 2006

Topic

When configuring a new MCMS database using the DCA I receive the following error:

Database creation failed
[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'ID'.
[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'ID'.
207
Microsoft SQL-DMO (ODBC SQLState: 42S22)

How can I correct this problem?

Answer

This problem can happen if the DCA is run against a SQL database that has been configured with case sensitive database collation.

MCMS only supports databases with case insensitive collation.


Error message: "Method '~' of object '~' failed"

April 25, 2004

Topic

When the DCA is being run during the installation, I receive the following error message: "Method '~' of object '~' failed". What is the problem?

Answer

This can happen when Windows Script is not installed correctly or the latest version is not installed.

Please re-install the latest version from here: http://msdn.microsoft.com/scripting.


Error message: "Must Declare the varible @InsertedParentGuid"

June 10, 2003

Topic

After running the Database Configuration Application (DCA), the database population process stops with the following error message:

Database creation failed [Microsoft][ODBC SQL Server Driver][SQL Server]Must Declare the varible @InsertedParentGuid'. -2147221367 Microsoft SQL-DMO(ODBC SQLState : 42000)

Answer

This could be caused by case-sensitive collation or locale settings on the SQL server. Ensure that you are using case-insensitive SQL Server settings.


Error message: "Rollback transaction request has no corresponding begin tran"

May 18, 2005

Topic

While running the conversion from MCMS 2001 to MCMS 2002 I get the following error:

-2147217601 ('80040f3f')
Rollback transaction request has no corresponding begin tran

What can be causing the problem?

Answer

This can happen when the transaction log file is full.

Extend the transaction log to increase without limit and try the upgrade again.


Error message: "Run-time error '91' - Object variable or With block variable not set"

February 8, 2003

Topic

The DCA fails with the error "Run-time error '91' - Object variable or With block variable not set". What could be wrong?

Answer

The DCA requires Windows Script version 5.6. This error message occurs if Windows Script 5.6 is not correctly installed.

Either reinstall Internet Explorer 6 SP1 or download Windows Script 5.6 from the following location and reinstall it:

http://msdn.microsoft.com/downloads/default.asp?URL=/downloads/sample.asp?url=/msdn-files/027/001/733/msdncompositedoc.xml

Attention: this is necessary even if Windows Script 5.6 is already installed on the server.


Error message: "The roll back transaction request has no corresponding begin transaction"

October 6, 2005

Topic

When migrating my CMS 2001 database to CMS 2002 about 12% into the upgrade it gives the fiollowing runtime error:

2147217601 (80040f3f),
[microsoft] [odbc sql server driver] [sql server] The roll back transaction request has no corresponding begin transaction.

How can I correct this problem?

Answer

The upgrade routine tries to create a role named "CMSSystem" in the database. If a user with the same name already exists this problem occurs.

To resolve the problem, open the SQL Server Enterprise Manager and go to the Users of the selected database. Delete the user named "CMSSystem".

After the installation is complete you can create the account again, but it is recommended that you do not use the name "CMSSystem".


Error message: "User or role 'CMSSystem' already exists in current database"

August 1, 2003

Topic

After upgrading to MCMS 2002 SP1, I get the following error message while running the DCA:

Error encountered applying script C:\Program Files\Microsoft Content Management Server\Server\Setup Files\SQL Install\_Sp1Upgrade.sql
[Microsoft][ODBC SQL Server Driver][SQL Server]User or role 'CMSSystem' already exists in current database.
-2147206481
Microsoft SQL-DMO (ODBC SQLState: 42000)

What could be wrong?

Answer

The upgrade routine tries to create a role named "CMSSystem" in the database. If a user with the same name already exists this problem occurs.

To resolve the problem, open the SQL Server Enterprise Manager and go to the Users of the selected database. Delete the user named "CMSSystem".

After the installation is complete you can create the account again, but it is recommended that you do not use the name "CMSSystem".


GPF in DCA

September 29, 2003

Topic

When running the DCA setup I encountered a General Protection Fault (GPF). It happened in the stage "Select Database". This is repeatable on two Windows XP machines, and all patches are applied to both Microsoft Windows XP and Microsoft SQL Server™ 2000.

Answer

The machines had PGP (encryption of disks, mails etc) installed for securing project documents. Once PGP was uninstalled, and Windows Script 5.6 was reinstalled, the DCA worked.

Download Windows Script 5.6 from the following location and reinstall it:

http://msdn.microsoft.com/downloads/default.asp?URL=/downloads/sample.asp?url=/msdn-files/027/001/733/msdncompositedoc.xml


SQL Server database not available in the DCA

March 27, 2003

Topic

Is there any reason why a SQL Server Database would not appear in the Database drop down list of the DCA? I've created a new Database using SQL Server Enterprise Manager and I can’t select it from the DCA because it isn't in the list.

Answer

There are 2 tasks involved when running the DCA. There are also 2 scenarios to consider.

Scenario 1 (Using trusted connection):

  1. The user who runs the DCA needs db_owner permission to the MCMS database
  2. The MCMS system account (i.e. trusted connection) needs db_ddladmin (for SiteDeployment), db_datareader, db_datawriter for MCMS day-to-day operations
  3. The DCA uses the desktop user (who runs the DCA) to access the database and assign database permissions to the MCMS system account

Scenario 2 (Using SQL Login):

  1. The SQL Login needs db_owner permission to the MCMS database
  2. The SQL Login needs db_ddladmin (for SD), db_datareader, db_datawriter for MCMS day-to-day operations
  3. DCA uses the SQL Login to access the database and assign database permissions to the SQL Login

Hence, the db_owner permission is needed for assigning permission to the account which performs MCMS day-to-day operations. That MCMS system account needs db_ddladmin, db_datareader & db_datawriter.


Debugging

This section covers methods of debugging Microsoft® Content Management Server (MCMS) related issues.

"Access denied" when accessing the site

403 when browing the site

COMException 0x80041b58

DCA log

Enabling TraceListener Support

Error message: "Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32)"

Error message: "Server Application Unavailable"

Incompatible placeholder type

Parser error

PlaceholderToBind Not Found

Template debugging in Microsoft Visual Studio .NET

Troubleshooting 500 server error

Wrong image version


"Access denied" when accessing the site

August 16, 2004

Topic

When accessing my site I receive password prompts and see an "Access Denied" message. Why does this happen?

Answer

There are several possible reasons for this behaviour:

  • You added a hard link to a Posting that the current user does not have rights to.
  • The ASPNET account (IIS 5) or Application Pool Acount (IIS 6) does not have the SeImpersonatePriviledge.
  • Your machine has MCMS 2002 Standard Edition installed, and the server name configured in the SCA is not identical to the machine name.


403 when browing the site

January 29, 2004

Topic

When browsing my site I receive a 403 response. How can I solve this?

Answer

Do the following checks:

  1. Check in the IIS master properties if the two CMS ISAPI filters are listed and that they are not listed twice
  2. If this is Windows XP:

    Go to your Local Computer Policy, click Computer Configuration, then Windows Settings, then Security Settings, then Local Policy, then Security Options.

    Change the "Network access: Sharing and security model for local accounts" setting to "Classic - local users authenticate as themselves".
  3. If Sharepoint Portal Server 2003 is installed look in the Internet Information Server (IIS) log. You will see a 403.18 which means "Cannot execute requested URL in the current application pool." Ensure that MCMS and Sharepoint Portal Server are configured to use the same application pool.
  4. Ensure that all MCMS folders run in the same application pool as the Web site. See here for details:
    842429 - You receive a 403.18 error message when you run an MCMS application in a different application pool on IIS 6.0


COMException 0x80041b58

July 10, 2003

Topic

The following exception occurs when I browse my web site: COMException (0x80041b58). What can be the reason?

Answer

There are several different reasons for this. Check the detailed call stack.

  1. SeImpersonatePriviledge missing:

    Windows 2000 with SP4, Windows Server 2003 and Windows XP with SP2 implement a new priviledge which needs to be assigned to the ASPNET account (IIS 5) or to the Application Pool Account (IIS 6).

    [COMException (0x80041b58)]
    Microsoft.ContentManagement.Interop.Publishing.CmsHttpContextClass.Initialize(String currentUrl, String httpHostName, Int32 serverPort, Boolean isSecureServer, Int32 iisInstanceId, String remoteMachineAddress, String authenticationType, String authenticationToken, Int32 windowsUserHandle, String ClientAccountName) +0
    Microsoft.ContentManagement.Publishing.CmsHttpContext.initialize(IntPtr windowsToken, String cmsAuthToken, String clientUserName, String clientAccountType) +297
    Microsoft.ContentManagement.Publishing.CmsHttpContext.getCmsHttpContextFromIdentity(HttpContext httpContext) +1088
    Microsoft.ContentManagement.Publishing.CmsHttpContext.get_Current() +57

    The Account running the ASPNET_WP worker process is missing the SeImpersonatePrivilege privilege when Windows 2000 SP4 is installed. On member servers this is the ASPNET account or a different account configured in either machine.config or web.config. You need to add the SeImpersonatePriviledge to the account running the ASPNET_WP worker process.

    On Windows 2000 domain controllers with .NET Framework 1.1 the default account is not the ASPNET account but the IWAM_<machinename> account.

    A solution is provided in the CMS 2002 SP1 Readme file.

  2. Known bug in the the PostingObject.Approvers(Boolean) method:

    [COMException (0x80041b58): Server error. Contact the site administrator.]
    Microsoft.ContentManagement.Interop.Publishing.IRcwPosting.get_Approvers(Boolean doExpandUserGroups) +0
    Microsoft.ContentManagement.Publishing.Posting.Approvers(Boolean doExpandUserGroups) +47

    Request MCMS hotfix 828278

  3. Known bug in SiteDeployment that can cause a database inconsistancy

    [COMException (0x80041b58): Server error. Contact the site administrator.]
    Microsoft.ContentManagement.Interop.Publishing.IRcwSearches.UserPostingsInPr
    oduction    () +0
    Microsoft.ContentManagement.Publishing.Searches.UserPostingsInProduction() +38

    [CmsServerException: Server error. Contact the site administrator.]
    Microsoft.ContentManagement.Publishing.Searches.UserPostingsInProduction() +71
    Microsoft.ContentManagement.WebAuthor.ProductionManager.BindDataGrid() +29
    Microsoft.ContentManagement.WebAuthor.ProductionManager.Page_Load(Object
    sender, EventArgs e) +387
    System.Web.UI.Control.OnLoad(EventArgs e) +67
    System.Web.UI.Control.LoadRecursive() +35
    System.Web.UI.Page.ProcessRequestMain() +750

    Request hotfix 843027

  4. Known bug in MCMS

    [COMException (0x80041b58): Server error. Contact the site administrator.] Microsoft.ContentManagement.Interop.Publishing.IRcwSearches.UserApprovalsPending() +0
    Microsoft.ContentManagement.Publishing.Searches.UserApprovalsPending() +38

    [CmsServerException: Server error. Contact the site administrator.] Microsoft.ContentManagement.Publishing.Searches.UserApprovalsPending() +70
    Microsoft.ContentManagement.WebAuthor.ApprovalAssistant.BindDataGrid() +62
    Microsoft.ContentManagement.WebAuthor.ApprovalAssistant.Page_Load(Object sender, EventArgs e) +518 System.Web.UI.Control.OnLoad(EventArgs e) +67
    System.Web.UI.Control.LoadRecursive() +29
    System.Web.UI.Page.ProcessRequestMain() +724

    Request hotfix: 843027

  5. Problem uploading a resource file

    [COMException (0x80041b58): Server error. Contact the site administrator.]
    Microsoft.ContentManagement.Interop.Publishing.CmsApplicationContextClass.AcceptBinaryFile(String filename)
    Microsoft.ContentManagement.Publishing.CmsContext.AcceptBinaryFile(String
    filename)

    This usually happens if
    - the file to be uploaded has 0 byte size. MCMS does not support uploading files with 0 byte size
    - the MCMS system account does not have read permissions on the file to be uploaded.

References

1.0 specific:
315158 - FIX: ASP.NET Does Not Work with the Default ASPNET Account on a Domain

1.1 specific
824308 BUG: IWAM Account Is Not Granted the Impersonate Privilege for ASP.NET


Enabling TraceListener Support

March 24, 2004

Topic

When using Connector for SharePoint Technologies I'm having problems synchronizing and/or retrieving my content from my SharePoint Document Libraries. Are there any troubleshooting steps I can take?

Answer

The WssDocumentUpdater tool is a stand-alone command line utility that is included with MCMS 2002 Connector for SharePoint Technologies. With the WssDocumentUpdater tool, you can update the content of the WssPlaceholder objects in the MCMS repository. When TraceListener support is enabled, Microsoft® Product Support Services (PSS) can more effectively troubleshoot issues with the WSSDocumentUpdater tool.

The WssDocumentUpdater tool provides TraceListener support for errors, warnings, and verbose trace messages. The TraceSwitch class that the WSSDocumentUpdater tool uses is Microsoft.ContentManagement.SharePoint.Updater.

Enable TraceListener support for the WSSDocumentUpdater tool

  1. In the directory that contains the WssDocumentUpdater.exe file, create a configuration file that is named WssDocumentUpdater.exe.config.
  2. Add the following code to the configuration file:

    <configuration>
    <system.diagnostics>
    <switches>
    <add name="Microsoft.ContentManagement.SharePoint.Updater" value="4" />
    <add name="Microsoft.ContentManagement.RepositoryInterfaces" value="4" />
    </switches>
    <trace autoflush="true" indentsize="4">
    <listeners>
    <add name="myTracingListener"
    type="System.Diagnostics.TextWriterTraceListener"
    initializeData="WssDocumentUpdater.log" />
    </listeners>
    </trace>
    </system.diagnostics>
    </configuration>

  3. Save the file.
  4. Run WssDocumentUpdater.exe. A log file that is named WssDocumentUpdater.log is created in that directory. To change the path and file name, change the initializeData property in the configuration file.

Note You can use this same method of tracing with the WSS Document Library Finder tool that is used with the SharePointPlaceholder server control. To do this, change the Web.config file for the application instead of the WssDocumentUpdater.exe.config file for the application.


Error message: "Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32)"

May 19, 2006

Topic

Suddenly my server no longer allows me to do any updates to the database. Neither in Site Manager, nor in Web Author, nor in VS.NET Template explorer.

The error messages vary. Sometimes I get an ODBC error, sometimes I see the following error message: "Maximum stored procedure, function, trigger, or view nesting level exceeded (limit 32)."

How can I correct this problem?

Answer

This problem can happen when recursive triggers are allowed on the MCMS database. This is not allowed.

To correct the problem use the following steps:

  • Open Enterprise Manager
  • Right click on the affected database
  • open the Properties window
  • open the Options tab
  • uncheck the "Recursive triggers" checkbox.


Error message: "Server Application Unavailable"

January 31, 2004

Topic

When browsing my Web site I receive the following error message:

Server Application Unavailable

The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request.

Administrator Note: An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur.

The event log do not show any details. What could cause this problem?

Answer

If this is a multi processor or hyper threaded machine, check out the following KB article:

821157 "Server Application Unavailable" error message if a DLL is loaded in the 0x33A20000 address space and you request an ASP.NET page"

To correct this problem please install Microsoft .NET framework 1.1 Service Pack 1 (Windows Server 2003 version, Windows 2000 version)


Incompatible placeholder type

October 1, 2002

Topic

Error message:

Server Error in '/Woodgrove' Application.
[HtmlPlaceholderControl "PlaceholderHtmlControl1"] The PlaceholderToBind "HomeMainContent1" was of an incompatible type "Microsoft.ContentManagement.Publishing.Extensions.Placeholders.XmlPlaceholder"

Answer

This error occurs when a placeholder control is bound to the wrong type of placeholder object. For example, a single image placeholder control cannot be bound to a placeholder derived from the XMLPlaceholder object.

If you bind placeholders using the dropdown in the Microsoft® Visual Studio® .NET template property window, this should not happen. Only valid placeholder types are shown in the dropdown list. However, it is possible to get this error if you bind placeholders by altering the code directly in the template file.


Parser error

October 1, 2002

Topic

Error message:

Server Error in '/Woodgrove' Application.
Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately. Parser Error Message: Could not load type 'Woodgrove.Global'.

Source Error:
Line 1: <%@ Application Codebehind="Global.asax.cs" Inherits="Woodgrove.Global" %>

Answer

This error commonly occurs when the project has been altered and needs to be rebuilt in Microsoft® Visual Studio® .NET. Typically, a codebehind page has been altered.


PlaceholderToBind Not Found

October 1, 2002

Topic

Error message:

Server Error in '/Woodgrove' Application.
[HtmlPlaceholderControl "PlaceholderHtmlControl1"] The PlaceholderToBind "HomeMainContent1" was not found.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Answer

This happens when the placeholder object in the ASPX file is bound to a non-existent placeholder in the database. Placeholders associated with a template are stored in the template gallery item (TGI). You can view the collection of placeholders using the Microsoft® Visual Studio® .NET template property window.


Template debugging in Microsoft Visual Studio .NET

July 10, 2003

Topic

I tried to debug one of my templates but it does not work. How can I enable this?

Answer

The easiest way to achieve this is to use one of these methods:

Use the 'Debugging Start Page'

  1. In the web.config change debug to True.
  2. In IIS turn on ASP client and server side debugging for ASP (Home Directory -> Configuration)
  3. Create an HTML file in your project that has a link to a page using the CMS template that you want to step through (see example below)
  4. Set the HTML as the start page for the project (right-click the file in VS) - check each project
  5. Set the project properties to turn on ASP.Net debugging
  6. Set the web application project (not the webcontrollibrary - if you have one) as the startup project
  7. Start debugging and click the link to the page using the template that you want to debug
  8. Symbols can be added in the solution properties under 'Common Properties' -> 'Debug Symbol Files'

Example start page:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 7.0">
<TITLE>Debugging Start Page for Woodgrove</TITLE>
</HEAD>
<BODY>
<a href="http://localhost/WoodgroveNet/About+Woodgrove/Press+Releases/August+30,+2001.htm">
Navigate to CMS and debug.</a>
</BODY>
</HTML>

Attach directly to the process:

  1. Open the project in Visual Studio .NET
  2. Set your breakpoints
  3. Click "Debug" - "Processes"
  4. Select the "aspnet_wp.exe" (IIS5) or "w3wp.exe" (IIS 6) process in the list (if it does not show up, select the "show processes in all sessions" button)
  5. Click "Attach..."
  6. Ensure that "Common Language Runtime" is selected
  7. Click "OK" and "Close"
  8. Open a new Internet Explorer instance and browse to your page. Visual Studio .NET will take control when the breakpoint is hit and let you debug your application.


Troubleshooting 500 server error

August 27, 2003

Topic

I receive 500 server errors. What could be wrong?

Answer

500 server errors are internal processing errors. Try the following troubleshooting suggestions:

  1. Ensure that there is no web.config or global.asax file in the root of your Web site as this can cause such issues.

    Which .NET framework version do you use? If it is 1.1 ensure that

        <pages smartNavigation="false" validateRequest="false" />

    is included in your web.config. If you receive the error using one of your templates check the web.config in your template project. If you receive the error using Site Manager or Authoring Connector, check the web.config in the /MCMS directory.

    If it is .NET framework 1.0 ensure that the 'validateRequest' entry is NOT in the web.config.

  2. Check whether there is a global.asax or a web.config in the root of your Web site. If one of these files exists, remove or rename it and test to see if the problem is gone. An error in one of these files can cause these kind of problems.

  3. Check the event log for errors. Often an event log entry is written when a 500 error is reported

  4. If this is a multiproc machine and/or hyperthreading is enabled and .NET framework 1.1 is installed then the following hotfix is required: 821157.
    Update: this fix is now also included in Microsoft .NET framework 1.1 Service Pack 1 (Windows Server 2003 version, Windows 2000 version)

  5. Run a virus scanner as a virus can cause such an errors.

  6. If the problem happens in SiteManager try to access the following URL in a browser to see if an error occurs: http://localhost/NR/System/ClientUI/login.asp

    If the problem happens during Site Deployment in SiteManager try to access the following URL in a browser to see if an error occurs: http://localhost/mcms/sitedeployment/cmsxmlstub.aspx

  7. If neither of these help, try the request from a machine which is not the MCMS server machine and ensure that

        <customErrors mode="Off" />

    is set in your web.config. See above about how to determine which web.config to use. Now use Network Monitor to take a trace to see the complete error response sent by MCMS.


Wrong image version

December 3, 2002

Topic

I find that the wrong versions of images are showing up on my site. What could be happening?

Answer

The issue of the wrong version of images is likely a caching problem. It can be a proxy server issue, or an Internet Explorer caching issue. MCMS will most likely limit the occurrence of this (since it will handle caching resources). But it is, of course, still possible to use files off the file system.

For example, Internet Explorer caches the pages it downloads to avoid downloading the same file again (saving bandwidth). This feature works by comparing the file dates of the locally cached file with that of the file on the server. Any server files older than those of the file in the user's Microsoft Internet Explorer cache, are not downloaded.

In some cases, the new version of the image was created after the older versions were last modified. When users visited the site, Microsoft Internet Explorer downloaded and cached the the old image because the file was newer. But when you roll back the images to the original, the file date of the original image file was older than the new file. When Microsoft Internet Explorer sent its request to the server, the server checked dates and reported that the old file (that Microsoft Internet Explorer cached) was still newer than the file on the server and Microsoft Internet Explorer did not download the file from the server.

To resolve this, we modified the dates on the server files so that they were all last modified today. This will force any browsers to download the new files and thus, the correct images will appear.

Even though the files are different, it does not mean they will be downloaded by web browsers; the modified date of the new file must be newer than that of its predecessor.

To check the fix, it should be confirmed on a work machine and a home user's machine (if there is a proxy) without clearing the file cache. File downloads should be monitored using Network Monitor. This is a global fix and should cause every visitor to the site to see the new file without having to clear the cache in their browser.


General

ASP.NET not registered in IIS

Cover.asp

Error message: "Bad Request (Request Header too long)"

Error message: "service hung on starting" with MCMS 2002 SP1

Event ID 2602 - An unrecognized request was received by the CMS ISAPI Filter

Implementing an RSS feed for a MCMS Web site

Invalid object name 'LayoutTemplateProperty'

MCMS and different application pools

MCMS and Windows Server 2003 Web Edition

MCMS on Windows Server 2003

Setting the start date of a posting to the past

Template switching in MCMS 2002

Virtual directory "CMS" not visible on Microsoft Windows XP

What is the difference between Template Designer and Channel Manager?

What is the meaning of the MCMS performance counters?

Whitepapers, links, training materials and other resources for MCMS


ASP.NET not registered in IIS

February 10, 2003

Topic

When I browse to a posting, the page shows me the source code instead of rendering the content.

Answer

ASP.NET may not be registered correctly in Internet Information Server (IIS). Run the following command to reregister ASP.NET with IIS:

(for .NET framework 1.0)
"\WINNT\Microsoft.NET\Framework\v1.0.3705\aspnet_regiis.exe" -i

(for .NET framework 1.1)
"\WINNT\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe" -i


Cover.asp

August 6, 2002

Topic

When I access an empty channel, MCMS pulls up the /NR/Shared/Cover.asp page. How do I modify this page?

Answer

The reference to this page is hard coded in the MCMS server. You can modify this file but another option is to use a channel rendering script. This will allow you to add any code of your choosing.


Error message: "Bad Request (Request Header too long)"

August 2, 2004

Topic

A user with a large Kerberos Ticket (he is a member of 100 groups) is not able to access a Web site on Content Management Server 2002 SP1a running on Windows Server 2003.

He receives the following error message: "Bad Request (Request Header too long)"

Answer

It is possible to increase the request header limits using the Registry. You need to adjust the MaxFieldLength and MaxRequestBytes limits as shown in the following KB article:

820129 - INF: Http.sys Registry Settings for IIS


Error message: "service hung on starting" with MCMS 2002 SP1

September 3, 2003

Topic

I get "service hung on starting" after installing MCMS 2002 SP1. This is explained in the MCMS 2002 SP1 readme file but I don't like getting the message. Is there a way to avoid these messages?

Answer

This 7022 error is logged because of the tracing initialization of the ReHTMLPackager.dll filter which relies on Windows Management Instrumentation (WMI).

One simple workaround is to set the IISAdmin service to depend on the WMI service. This can be done by following these steps:

  1. Click Start, then Run, and enter RegEdt32.exe
  2. Browse to HKLM\System\Services\IISAdmin
  3. Double-click the DependOnService (REG_MULTI_SZ) value; this will open the Multi String Editor window
  4. Add "WMI" (without quotes) in the Multi String Editor window underneath RPCSS and ProtectedStorage
  5. Click OK
  6. Close RegEdt32
  7. Restart the computer


Event ID 2602 - An unrecognized request was received by the CMS ISAPI Filter

August 26, 2004

Topic

I have noticed that there are a lot of entries for “Event ID 2602” recorded in the application event log of my MCMS server:

Event ID 2602, Source: MCMS, Type: Warning, Date: 08/16/2004, Time: 3:20:24 PM, An unrecognized request was received by the CMS ISAPI Filter. The request was mapped to the CMS read-only resource cache virtual directory but the URL format did not correspond to a CMS Resource. The CMS ISAPI Filter did not process the request and allowed IIS to handle it instead. The requested URL was '/NR/rdonlyres/...'.

What does this mean?

Answer

This event is written whenever a request arrives that seems to address an MCMS managed resource that cannot be found in the MCMS repository. All requests going to /NR/rdonlyres are assumed to be MCMS managed objects.

This event is created for all URLs with this format that do not identify MCMS managed objects.

This can be caused by:

  1. Requests to SiteDeployment Reports which are located in the MCMS disk cache but are not managed objects.
  2. Requests to static objects placed in this location
  3. Requests to deleted resources. This can be caused if the posting containing such resources are cached somewhere and requested. Even if the posting is deleted on the MCMS server such cached instances can still be in some Proxy or search engine caches. If background processing already removed the resource then MCMS does not know that these have existed before and if such a cached item is requested in the browser the embedded images are requested from MCMS. Because these items no longer exist, the 2602 event is written.


Implementing an RSS feed for a MCMS Web site

April 5, 2004

Topic

Is it possible to create an RSS feed for content syndication for my MCMS site?

Answer

Yes this is possible. An RSS feed is very similar to a MCMS summary page. The major difference is that the content is served as XML rather than Html. But Html can be embedded if it is properly encoded.

Below is a sample of an RSS feed. It provides information about recent changes to the MCMS site. The code uses the NewPosting method of the searches object and returns a summary of the content.

To integrate the RSS feed nicely into the site you can create a channel names 'RSS' below the root of the Web site and bind the ASP.NET Web form that generates the feed as the Channel Rendering Script for this channel.

Here is the actual implementation:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Microsoft.ContentManagement.Publishing;
using Microsoft.ContentManagement.Publishing.Extensions.Placeholders;

namespace MyCMSproject
{
/// <summary>
 /// Summary description for RSS.
 /// </summary>

public class RSS : System.Web.UI.Page
{

private string GetPostingSummary(Posting p)
{
 if (p.Placeholders["Summary"] != null)
{
HtmlPlaceholder phSummary = (HtmlPlaceholder)p.Placeholders["Summary"];
return phSummary.Html;
}
 else
{
return p.Description;
}
}

private string GenerateRssXml()
{
MemoryStream mem = new MemoryStream();
XmlTextWriter Xmlwriter = new XmlTextWriter(mem, Encoding.UTF8);

Xmlwriter.WriteStartElement("rss");
Xmlwriter.WriteAttributeString("version","2.0");
Xmlwriter.WriteStartElement("channel");

Xmlwriter.WriteElementString("title","Title of your Web site");
Xmlwriter.WriteElementString("link","http://www.yourWeb site.com";
Xmlwriter.WriteElementString("copyright","© Your Corporation. All rights reserved.");
Xmlwriter.WriteElementString("description","Description of your Web site");
Xmlwriter.WriteElementString("managingEditor","email of your responsible Editor");
Xmlwriter.WriteElementString("webMaster","email of your responsible Webmaster");
Xmlwriter.WriteElementString("generator","Stefan's RSS feeder 1.0.0.0");

PostingCollection pc = CmsHttpContext.Current.Searches.NewPostings(20);
pc.SortByLastModifiedDate();

foreach (Posting p in pc)
 {
 // I don't want include all channels here
if (p.Path.ToLower().StartsWith("/channels/publicChannel"))
{
Xmlwriter.WriteStartElement("item");
Xmlwriter.WriteElementString("title",p.DisplayName);
Xmlwriter.WriteElementString("link","http://www.yourWeb site.com"+p.Url);

// Date needs to use this format
Xmlwriter.WriteElementString("pubDate",p.LastModifiedDate.ToString("r"));

Xmlwriter.WriteElementString("guid",p.Guid);
Xmlwriter.WriteElementString("description",GetPostingSummary(p));
Xmlwriter.WriteElementString("author",p.CreatedBy.ClientAccountName);
Xmlwriter.WriteEndElement();
}
}

Xmlwriter.WriteEndElement();
Xmlwriter.WriteEndElement();

Xmlwriter.Flush();
 mem.Position = 0;
StreamReader reader = new StreamReader(mem);
return reader.ReadToEnd();
}

private void Page_Load(object sender, System.EventArgs e)
{
Response.ContentType = "text/xml; charset=utf-8"; // its Xml, not Html
}

protected override void Render( HtmlTextWriter writer)
{
writer.Write(GenerateRssXml());
}

#region Web Form Designer generated code
 override protected void OnInit(EventArgs e)
 {
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();

base.OnInit(e);
 }

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion

 }
}

The code uses the last modified date as published date. Depending on your needs you can also choose the creation date instead.

The code above is pretty simple. You might have to adjust it to meet your requirements if different placeholders on different templates should be returned.

As you can see MCMS makes it easy for you to create an RSS feed. You could use this for content syndication or for your own business needs.

There is also a ready to use solution provided by a Microsoft Partner: http://www.cmsrss.com/


Invalid object name 'LayoutTemplateProperty'

May 15, 2003

Topic

In the Application Event log, there are a bunch of pairs of warnings:

Warning 1)

Source: MCMS
Event ID: 2400
Description: Connection 00A930C8 <[Microsoft][ODBC SQL Server Driver][SQL Server]
Invalid object name 'LayoutTemplateProperty'.> {State=42S02 NativeCode=208}

Warning 2)

Source: MCMS
Event ID: 2405
Description: Offending SQL: SELECT * FROM LayoutTemplateProperty WHERE NodeId = ?; Invalid object name 'LayoutTemplateProperty'.

Answer

This problem is caused by invalid data in the MCMS database. The 'LayoutTemplateProperty' property was removed from MCMS 2002 RTM. You may have imported an SDO file from a beta or EAP version of MCMS 2002 into an MCMS 2002 RTM database.

Try exporting a full site - including Channels, Resource, and Templates and importing them into a fresh database. This should fix the problem.


MCMS and different application pools

December 1, 2004

Topic

Can MCMS be used accross different application pools in Internet Information Server (IIS) 6?

Answer

The answer to this is no. All virtual directories containing items that access the MCMS repository need to reside in the same application pool. If one of the virtual directories is placed into a different application pool you will experience errors.

Here are some results you might experience:

All together (only officially supported version)
MCMS website - Application Pool 1
Template application - Application Pool 1
NR virtual directory - Application Pool 1

Result: MCMS works

All in their own application pool
MCMS website - Application Pool 1
Template application - Application Pool 2
NR virtual directory - Application Pool 3

Result: Viewstate error

MCMS website in its own application pool
MCMS website - Application Pool 2
Template application - Application Pool 1
NR virtual directory - Application Pool 1

Result: MCMS works

Template application in its own application pool
MCMS website - Application Pool 1
Template application - Application Pool 2
NR virtual directory - Application Pool 1

Result: 403 error

NR virtual directory in its own application pool
MCMS website - Application Pool 1
Template application - Application Pool 1
NR virtual directory - Application Pool 2

Result: Viewstate error

If you have multiple IIS web sites configured as MCMS web entry points all these directories in all the web sites need to be in the same application pool.


MCMS and Windows Server 2003 Web Edition

January 9, 2004

Topic

Is it possible to use MCMS 2002 on Windows Server 2003 Web Edition?

Answer

No. It is a licensing violation to use MCMS 2002 on Windows Server 2003 Web Edition.


MCMS on Windows Server 2003

February 8, 2003

Topic

Does MCMS run on Microsoft Windows Server™ 2003?

Answer

MCMS 2002 is supported on Windows Server 2003 with MCMS 2002 SP1. MCMS SP1 can be downloaded from the Microsoft web site.

MCMS 2001 will not be supported on Windows Server 2003. It is recommended that you update to MCMS 2002.


Setting the start date of a posting to the past

February 9, 2003

Topic

Is there a way to set the 'StartDate' property for a posting before the current day? Anytime I attempt to set it to a past date in the UI or via the API, it does not accept the value.

Answer

The problem is that no posting can be "older" than its parent channel. For example, if the start date of the channel is October 22nd 2002, then no item in this channel can have a start date which occurs before October 22nd. You can however, traverse all the channels (including the top channel "channels") and set the start date of them to a day in the past. Once the start dates have been set, you should be able to set any start date on the posting.

Using the Site Manager it is not possible to set a start date that is before the installation date for MCMS. However, this limitation does not apply when setting the start date using the MCMS Publishing API.


Template switching in MCMS 2002

February 8, 2003

Topic

I used template switching in MCMS 2001 but cannot find this functionlity in the managed Publishing API of MCMS 2002. How can I implement this?

Answer

Template switching is only supported in the COM version of the Publishing API. We did this because of authorization changes (template galleries now have subscriber rights) and because templates now have a placeholder schema. Connected pages now require that the templates used for them share a common schema (which is reflected in the API as connected templates) and we could see no good way to accommodate template switching within the connected templates model. Given that existing applications needed to keep working, we left the 'URLUsingAlternateTemplate' method in the COM API, but we removed it from the managed one.

We also thought that the weaknesses of template switching usually outweighed its strengths. For example, you need to have the name for the template which is unique across the whole site. This can be fragile, especially as the number of templates gets large. You are not protected against switching to an incompatible template and no help is given to you in finding a compatible template (two problems with connected pages which we fixed this release). This feature seemed to give you nothing you couldn’t get from connected pages or just using alternate ASPX pages.


Virtual directory "CMS" not visible on Microsoft Windows XP

June 4, 2003

Topic

On my Windows XP box the virtual directory "CMS" has not been created by Visual Studio .NET. But when I try to create it manually I get an "The alias you have given is not unique."

Answer

This is a known problem in Internet Information Services 5.1. The problem is documented here: http://support.microsoft.com/?id=308179

To correct this problem you can either use an ADSI script or Metabase Editor to delete the "CMS" virtual directory. Afterwards you can create it manually in the MMC.


What is the difference between Template Designer and Channel Manager?

February 8, 2003

Topic

What exactly is the difference between a Template Designer and a Channel Manager? I did not find any differences.

Answer

The primary differences between the Channel Manager and Template Designer role are related to possible administrative actions on templates.

  1. Channel Managers can check in a template that someone else has checked out. Template Designers are restricted from doing this.
  2. Channel Managers can “kill lock” on templates from within the Site Manager. Template Designers are restricted from doing this. In all other ways and for all other objects, the two roles are currently identical.


What is the meaning of the MCMS performance counters?

February 19, 2003

Topic

What is the meaning of the MCMS performance counters?

Answer

  • ISAPI sessions (Number of Internet Server API [ISAPI] sessions opened by server )

    This tells you how many connections are currently in our ISAPI filter performing URL transformations. If you have a high number of these, it may mean that the URL transformation is taking a long time, so you may want to increase your node cache size.

  • Shared nodes (Number of items/nodes referenced by server, including master cache items) What is a shared node and what is its relationship with Master Node?

    A shared node is what is stored in the main MCMS node cache. It will be roughly the same as the current master cache size, with some variation due to edit time cloning, versions, CI/CO, etc.

  • Cache hits/sec Rate of cache hits on master cache

    These are hits on the nodes in the MCMS Master Node cache.

  • Data access operations/sec (Number of data access operations executed per second)

    This is the number of calls that MCMS is making to the database. High numbers here probably mean that you need to increase your node cache, or look at caching search results such as custom prop searches, etc.

  • Number of exceptions thrown by server. This is the number of exceptions since when?

    Most likely since the start of the server.

  • Number of MCMS connections (Number of open MCMS application connections) What is this telling me? Is it related to ISAPI sessions?

    It is related to ISAPI sessions. This is how many connections there are to MCMS that are currently processing, such as ISAPI, web service, template/postings, etc.


Whitepapers, links, training materials and other resources for MCMS

April 10, 2003

Topic

There are the available whitepapers and other documents for MCMS.

Answer

MCMS Whitepapers

  • MCMS 2001

    • Backing Up and Restoring a MCMS 2001 Site
    • Best Practices for Site Deployment Using Microsoft MSCMS Site Deployment Manager
    • Building a Multilingual Site Using Microsoft Content Management Server
    • Content Management Server 2001 Workflow
    • Content Management Server Site Administrator's Guide
    • Deploying Content Management Server 2001 and Commerce Server 2000 Sites
    • Deploying Microsoft Content Management Server 2001 Sites
    • MSCMS 2001 Site Maintenance Best Practices
    • Performance and Scalability Test Cases
    • Performance Optimization and Capacity Planning
    • Planning a Microsoft Content Management Server Project
    • Security and Authentication in Content Management Server 2001
    • Using Microsoft Content Management Server and Microsoft SharePoint Portal Server for Enterprise Web Solutions
    • Web Content Management and Customer Relationship Management
    • Wireless Content Delivery with Content Management Server 2001

  • MCMS 2002

    • Addressing Portal Scenarios with Microsoft Integrated Portal Technologies
    • Arabic Language Support
    • Building, Deploying, and Maintaining Intranet Sites for the Enterprise (Book)
    • Case Studies
    • Creating Multilingual Web Sites with Microsoft Content Management Server 2002
    • Customizing Microsoft Content Management Server 2002 Authoring Connector
    • Deploying MCMS Site - Using Application Center 2000
    • Differences Between Microsoft Content Management Server 2002 Editions
    • Enabling SSL Protection on MCMS Sites
    • Extending the MCMS Web Author Console
    • Inside MCMS: How Content Management Server 2002 Processes Pages
    • Integrating Microsoft SharePoint Portal Search into Microsoft Content Management Server 2002
    • Integration Techniques and Strategies for Internet Business (Book)
    • Integration Techniques and Strategies for Content Management Server 2002
    • Localizing the MCMS 2002 Web Author Interface
    • Microsoft Content Management Server 2002 Developers Guide
    • Microsoft Content Management Server 2002 Evaluation Guide
    • Microsoft Content Management Server 2002 Frequently Asked Questions
    • Microsoft Content Management Server 2002 Technical Architecture
    • Microsoft Content Management Server 2002 Technical Overview
    • Microsoft Content Management Server: Managing Content on Microsoft.com
    • Performance Planning and Deployment with Content Management Server 2002
    • Preparing to Migrate to MCMS 2002 and ASP.NET
    • Return on Investment
    • Setting Up a Shared Development Environment in MCMS 2002
    • Supporting Mobile Devices with Microsoft Content Management Server 2002
    • Top 10 Reasons to Deploy Content Management Server 2002
    • Upgrading to MCMS 2002
    • Using Microsoft Content Management Server 2002 and Web Services
    • WoodgroveNet Sample Site for Microsoft Content Management Server 2002
    • What's New in Content Management Server 2002
    • MSDN book excerpt: "Enhancing Performance with Caching"

Other documents and download locations

  • Download location for Content Management Server 2001 SP 1
  • Product Documentation - Content Management Server 2002
  • Download location for Content Management Server 2002 Service Pack 1a
  • Download location for Woodgrove sample sites
  • Download location for C# WoodgoveNET sample
  • Download location for Microsoft Internet Explorer Webcontrols 1.0
  • Download location for Office 2000 HTML Filter 2.0
  • Content Management Server 2002 Site Manager Refresh
  • Content Management Server 2001 Site Builder Refresh
  • Microsoft Content Management Server 2002 Authoring Connector for Service Pack 1a
  • Microsoft Baseline Security Analyzer (including MCMS checks)
  • HP: Performance Characterization of Microsoft Content Management Server 2002 on HP ProLiant Series Systems
  • Telerik's edit control available to all MCMS 2002 Customers
  • Publishing Task Editor for Content Management Server 2002 Authoring Connector
  • Sample Code for Integrating Microsoft SharePoint Portal Search into Microsoft Content Management Server
  • Tool and Technology Partners
  • Microsoft Content Management Server 2002 Online Help

Training

  • Building Microsoft Content Management Server 2002 Solutions
  • Training for MCMS 2002 Connector for SharePoint Technologies (Spark)

WebCasts

  • MCMS 2001

    • TechNet Webcast: Introduction to Microsoft Content Management Server
    • MSDN Webcast: How to Design and Create Content Management Server Publishing Templates

  • MCMS 2002

    • MSDN Webcast: Building Web Sites with ASP.NET and MCMS 2002
    • MSDN Webcast: Integrating Search with MCMS 2002
    • MSDN Webcast: Building Custom MCMS 2002 Placeholder Server Controls (Second Session)
    • MSDN Webcast: Building Multi-Device Web Sites with MCMS 2002
    • MSDN Webcast: Building Multi-Lingual Web Sites with MCMS 2002
    • MSDN Webcast: Customizing and Extending MCMS 2002 Workflow
    • TechNet Webcast: Deploying CMS 2002
    • Metalogix Migration Assistant for Microsoft Content Management Server 2002
    • MSDN Webcast: Accelerating MCMS 2002 deployments with Metalogix Migration Assistant
    • MSDN Webcast: Building Websites with Microsoft Content Management Server 2002
    • MSDN Webcast: Extending Microsoft Content Management Server 2002 Publishing Processes
    • Support WebCast: Microsoft Content Management Server 2002: Best Practices and Procedures for Administering a CMS Web Server
    • MSDN Webcast: Integrating Microsoft SharePoint Products and Technologies with MCMSS 2002
    • Content and Process Fusion with Content Management Server and SharePoint Portal Server

  • Connector for SharePoint Technologies

    • Integrating Microsoft Content Management Server and SharePoint Products and Technologies
    • Digital Asset Management for Microsoft Integrated Portal Technologies
    • Using the Document Placeholder in the Microsoft Content Management Server Connector for SharePoint Technologies
    • Accelerating Portal Deployments with Metalogix Migration Manager
    • Creating Custom Web Part Views for the Microsoft Content Management Server Connector for SharePoint Technologies
    • Rapid Microsoft CMS Site Creation with the CMS Wizard
    • Creating Custom Rendering Templates with the Microsoft Content Management Server Connector for SharePoint Technologies
    • Configuring Search with the Microsoft Content Management Server Connector for SharePoint Technologies
    • Best Practices: Developing Solutions Using the Content Management Server 2002 Connector for SharePoint Technologies
    • Best Practices: Implementing a Sample Scenario Using the Content Management Server 2002 Connector for SharePoint Technologies

KB-Articles

  • HOWTO: Enable the Map Channel Names to Host Header Names Feature
  • HOWTO: Enable SSL on an MCMS 2002 Web Site
  • HOWTO: Assign Local Resources to Image or Attachment Placeholders
  • HOWTO: Enable Guest Access in a Multi-Server Scenario When You Cannot Use a Domain Account
  • HOWTO: Share MCMS content from a connected template in MCMS 2002
  • List of Fixes in Microsoft Content Management Server 2002 SP1
  • List of Bugs Fixed in Content Management Server 2002 Service Pack 1a
  • INFO: Set the Node Cache Size Based on Site Size
  • Known issues with Microsoft Content Management Server 2002 Connector for SharePoint Technologies
  • INFO: Content Management Server Supports SQL Server Log Shipping for Failover
  • DOC: Database Replication Utilities Should Not Be Used for Deploying Content Between Servers
  • How to maintain a Microsoft Content Management Server database
  • You receive a 403.18 error message when you run an MCMS application in a different application pool on IIS 6.0
  • All incremental crawls against the MCMS 2002 site are performed as full crawls
  • PRB: Extra carriage return for a CMS posting is created from a Word Authoring Connector
  • HOWTO: Capture TCP and HTTP Data Frames Using Network Monitor
  • HOW TO: Identify Your SQL Server Service Pack Version and Edition
  • INFO: "Viewstate is invalid for this page" error message does not provide sufficient information to troubleshoot the issue
  • How to create keys by using Visual C# .NET for use in Forms authentication
  • You Receive a "Page Cannot Be Displayed" Error Message When You Post to a Site That Requires Authentication
  • WinInet retries POST requests with a blank header
  • HOW TO: identify your SQL Server Service Pack version and edition

Whitepapers for related topics

  • Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication
  • Active Directory Service Interfaces Overview
  • Taking a Bite Out of ASP.NET ViewState
  • ASP.NET Performance Monitoring, and When to Alert Administrators

MCMS and Sharepoint Integration

  • Content Integration Pack 1 for CMS 2001 and SPS 2001
  • Content Integration Pack 2 for CMS 2002 and SPS 2001
  • Documentation Updates for Content Integration Pack 2 for CMS 2002 and SPS 2001
  • Authoring Connector for Word Language Pack for CIP 2 for CMS 2002 and SPS 2001
  • Connector for Sharepoint Technologies for CMS 2002 and SPS 2003
  • Using Microsoft Content Management Server 2002 Connector for SharePoint Technologies
  • Deployment Guide for Microsoft Content Management Server 2002 Connector for SharePoint Technologies
  • Microsoft Content Management Server 2002 Connector for SharePoint Technologies Evaluation Guide
  • Best Practices: Developing Solutions Using the Content Management Server 2002 Connector for SharePoint Technologies
  • Best Practices: Implementing a Sample Scenario Using the Content Management Server 2002 Connector for SharePoint Technologies

MSIB Content Connector for MCMS 2002 and Commerce Server

  • Microsoft Solution for Internet Business Version 2.1
  • MSIB Version 2.5

Community Links

  • Community page: Newsgroups, Webchats and more
  • Code samples on www.GotDotNet.com
  • MCMS Multilingual Web Authors Workspace on GotDotNet
  • WoodgroveNet C# Workspace on GotDotNet
  • WebDAV for CMS resource gallery Workspace on GotDotNet
  • Online Books
  • Public Newsgroups
  • Stefan Goßner's blog
  • Arpan Shah's blog

(Outdated Links)

  • (Download location for Content Management Server 2002 Service Pack 1)
  • (Content Management Server 2002 Authoring Connector for Word Language Pack)


Installation

The installation of Microsoft® Content Management Server (MCMS) is quite straight forward. This sections covers questions that have been raised.

Can MCMS 2002 be installed in unattended mode?

Credentials are not accepted in DCA on Windows XP

DCA log

Disconnected Laptop

Error message: "Need Server Side Includes"

Error Message: "Please uninstall older version of Content Management Server"

Installing MCMS 2002 without JavaVM

MCMS and Windows Server 2003 Web Edition

Roll back when installing Woodgrove sample site

Visual Studio .NET 2003 not recognized


Can MCMS 2002 be installed in unattended mode?

February 10, 2003

Topic

Can MCMS be installed in unattended mode?

Answer

From the MCMS 2002 readme:

Unattended installation is not supported. The option to install MCMS 2002 unattended is not provided for this release.


Disconnected Laptop

November 13, 2002

Topic

I would like to install MCMS on my laptop and be able to use it even if I am not connected to any networks. However, when I try to login to the Site Manager I get an error that the "local security authority cannot be contacted".

Answer

These steps will allow you to use MCMS while disconnected from any network:

  1. Connect to network and install MCMS.
  2. Use a local account as the 'CMSSystem' account.
  3. Add the local machine as a supported domain in the Server Configuration Application (SCA).
  4. Add a local account as an MCMS administrator.
  5. Disconnect from the network.
  6. Login to MCMS as the local administrator account.


Error message: "Need Server Side Includes"

March 18, 2004

Topic

When I try to install the MCMS client I get an error message.

Installation Failed and the changes were reversed.
Need Server Side Includes (required by MCMS Server)

How can I resolve this?

Answer

You need to install the 'Server Side Includes' component in Windows.

Here are the steps to resolve this issue:

  1. Start -> Control Panel -> Add or Remove Programs
  2. Choose 'Add/Remove Windows Components'
  3. Application Server -> Details -> Internet Information Server (IIS) -> Details -> WWW Web Service -> Details -> Add 'Server Side Includes'


Error Message: "Please uninstall older version of Content Management Server"

November 5, 2004

Topic

We encountered problems installing MCMS with SP1a on Windows Server 2003. After running the DCA to set up the database, attempted to install Site Manager and received this error "Please uninstall older version of Content Management Server before install this Microsoft Content Management Server SP1a".

We have no older version of MCMS or any other CMS. Installation of MCMS with SP1a went smoothly on our development and staging servers, but failed on our production server. All have the same configuration.

So, we attempted to uninstall MCMS with SP1a via Control Panel and Add/Remove Programs and received exactly the same error message. Any help would be appreciated.

Answer

The error message can be misleading.

Please check if you find the following event log entries in the Application Event log:

"Error 1719. The Windows Installer service cound not be accessed"

If this entry is listed, please use the procedure below to resolve the problem:

Unregister and then reregister Windows Installer

  1. Unregister Windows Installer:
    1. Click Start, and then click Run.
    2. In the Open text box, type msiexec /unregister, and then click OK.
    3. Verify the Windows Installer service is NOT listed under Computer Management - Services.
  2. Reregister Windows Installer:
    1. Click Start, and then click Run.
    2. In the Open text box, type msiexec /regserver, and then click OK.
    3. Verify the Windows Installer service IS listed under Computer Management - Services.


Installing MCMS 2002 without JavaVM

December 1, 2003

Topic

When installing MCMS 2002 I'm asked to install the Microsoft® JavaVM. As this component cannot be downloaded any more, how can I install MCMS 2002?

Answer

The JavaVM is only required by the Site Manager and Site Stager in the original version of the MCMS 2002. MCMS 2002 Service Pack 1a ships with a version of these components which do no longer require the JavaVM.


Roll back when installing Woodgrove sample site

October 21, 2003

Topic

At the end of the Woodgove sample site installation process, the setup rolls back for some unknown reason. The following event is getting added to my event log:

Event Type: Information
Event Source: MsiInstaller
Event Category: None
Event ID: 11708
Date:  10/20/2003
Time:  1:51:56 PM
User:  N/A
Computer: TIMOL-DEV
Description:
Product: Microsoft Content Management Server Sample Data -- Installation operation failed.

Any idea what might have happened?

Answer

This can happen when you install the sample site on a different Web site as the Default Web Site. This is not officially supported. Also ensure that you did not rename the Default Web Site to another name.

The workaround is to copy the files from another machine onto <CMS_Root>\Sample Data\ manually, and then manually create the web application mapping. The files under the <Cms_Root>\Sample Data\ hierarchy are basically Microsoft Visual Studio® .NET project files.

The next step is to create a web application named "WoodgroveNet" (i.e. the original MCMS template project name) under the root of the Web site where MCMS is installed and map it to <Cms_Root>\Sample Data\WoodgroveNet\.

Then create a virtual directory named "CMS" and map it to: <Cms_Root>\Server\IIS_CMS\ (under the root of the WoodgroveNet web application). This "CMS" virtual directory (ensure that it is not a web application) is required. Without it, you will have problems switching to edit mode using Web Author.

After this has done, you should be able to browse the WoodgroveNet sample site as http://<ServerName>/WoodgroveNet.


Visual Studio .NET 2003 not recognized

October 15, 2003

Topic

I currently have Microsoft® Visual Studio® .NET 2003 installed. I am trying to install MCMS 2002 but I keep receiving the following error message:

"Microsoft Visual Studio .NET not found (needed by Dev Tools)"

Answer

Microsoft Visual Studio .NET 2003 is not recognized by the MCMS 2002 installer because this product was not out when MCMS 2002 was released. Microsoft Visual Studio .NET 2003 support is added with MCMS 2002 SP1.

To get around this problem do the following:

  1. Install MCMS 2002 server component only (no Site Manager, no Site Stager, no Developer Tools)
  2. Install MCMS 2002 SP1. The SP1 install will give you the chance to install updated versions of the above components including Microsoft Visual Studio .NET 2003 support.

    - or -

    Install MCMS 2002 SP1a. After installing this service pack use Control Panel - Add/Remove Programs - Select MCMS in the list - use the change option to install the missing components now.


Migration

The migration section deals with migration sites to Microsoft® Content Management Server (MCMS) and migrating from one MCMS version to another.

Migrating sites to MCMS


Migrating sites to MCMS

November 4, 2002

Topic

How can I migrate my existing site to MCMS.

Answer

Take a look at our partners page for infomation about tools that can help you.

http://www.microsoft.com/cmserver/default.aspx?url=/cmserver/partners/tool.htm

The solution from Metalogix addresses this.


Performance

Questions pertaining to performance and tuning are covered in this section.

Bad performance after process recycling

Coding Tips

GB of multimedia

Is there a limitation for Postings per Channel?

Output caching with VaryByCustom="CMSRole"

Performance problems with .Text property

Poor performance

Storing 10000 items in a channel

VaryByCustom for Channels

WAST against MCMS


Bad performance after process recycling

February 24, 2005

Topic

I experience bad performance and high CPU after the worker process of my IIS website

Answer

MCMS works best if worker processes are not recycled.

The reason is that recycling of the worker process will cause an flush of the node cache as the node cache is part of the address space that gets recylcled. This means that further requests to the will cause a request flood to the SQL server. A single page request to the MCMS server can potentially cause thousands of requests to the backend SQL server - depending on the complexity of the templates and sites.

The recommendation for MCMS is to disable process recycling completly.

Process recycling has been implemented in Internet Information Server (IIS) to allow customers to deal with badly written applications that do not free resources (file handles, memory, ...) properly. MCMS actually does not require any recycling.


Coding Tips

February 4, 2004

Topic

I'm looking for some best practice coding tipps about performance. Where can I find such tips?

Answer

Look in the following whitepaper. It contains a section named 'Specific Coding Practices' which covers this:

WoodgroveNet Sample Site for Microsoft Content Management Server 2002


GB of multimedia

August 6, 2002

Topic

Our site will be storing "gigabytes and gigabytes" of multimedia content. We need a content management tool, but it needs to be capable of storing all types of media (.WMA, .WAV, .MP3, .MP4, .MPEG etc. etc. ) and gigabytes and gigabytes of it.

Can I be confident that MCMS is capable of handling such volume?

Answer

We are well set up for handling large numbers of small files. Even gigabytes and gigabytes of 1MB to 2MB short videos are fine (so long as your SQL server can handle it). But as soon as you talk about streaming video, you should look at some of our Digital Asset Management partners. If you put streaming video on a page, we are quite happy to manage everything around it. But uploading a 10GB video file from your desktop into a placeholder over HTTP is probably not the way you want to manage this. If you need streaming video, look at a joint solution.


Is there a limitation for Postings per Channel?

May 4, 2003

Topic

I have heard that there is a limitation of 300 items in a posting or channel. Is this a hard limit?

Answer

There are two types of containers in the MCMS object model: channels and galleries. Channels contain pages and determine the site structure. Channels also allow you to control which users can view, edit, and approve those pages. Galleries contain templates or resources such as images. Galleries allow you to organize these objects in the database as you might files in a directory structure, and also allow you to control user access to these objects.

You can establish quite complex container hierarchies to capture both the site structure and the user rights required to control the site content. However, large container hierarchies carry their own performance cost. Therefore, it is best to limit the depth of container hierarchy.

Root Channel containers:
Limit the number of containers under the root node. (For example, /Channels should not have more than 10 to 15 immediate children containers.)

Items in a container:
Limit the items in a container to less than 300. You can do this by distributing items over multiple containers, to ensure that the number of items in each container does not exceed 300.

A value of 300 items in a container (200 for MCMS 2001), is a definite upper level of resources, not only from a performance stand-point but also for effective use of the container hierarchy.

The container performance is related to the fact that in order to get a container and the first 3 items say (sort by date, grab the 3 newest items), all of the items in the container are inflated. This is because sorting is done outside of the database, and so that you can have the correct indexers (postings.Item("NewsArticle")).

As a best practice for MCMS 2002, to provide the most intuitive and efficient use of your container hierarchies, it would make sense to construct galleries that would reflect different business tasks or departments which may be using these resources. This will contribute greatly to your content contributors, editors, and template designer's ability to reference known locations of resources, but also ensure for a more efficiently designed hierarchy, directly allowing for the best possible performance of the system. Typically having more than 300 items in a container does not allow for either of these.

By having an excessive amount of objects (resources, pages, etc), in any one particular container (galleries, channels, etc), you're going to slow down the experience of displaying the contents of any one particular container in the Site Manager. This action of asking the server to display objects in the container can affect the overall performance and state of the server. Once the first request has been made to display the items in a container, as long as the user does not close Site Manager, they will be able to make subsequent requests to show the contents much faster as the contents are cached for this session.

Note: there is a whitepaper that discusses performance of MCMS 2002.


Output caching with VaryByCustom="CMSRole"

February 17, 2005

Topic

I have implemented ASP.NET output caching in my MCMS Template with VaryByCustom="CMSPosting;CMSRole"

When does MCMS get the users MCMS role? Each time the posting is requested? Only one time after the authentication process?

Answer

The user’s role membership is calculated one time only when they first authenticate and the MCMS auth token is generated. During logon all rights groups the current user is in are added to the CMS auth token. After that point, the role membership checks are done against this generated auth token. This means that if the user’s role membership changes after the auth token is generated, this will not have an effect until the next time they authenticate and a new auth token is generated.

Output Caching using CMSRole compares the role information in the auth token against the roles of the item in the cache and returns the item only if exactly identical rights group assignments are on the item in output cache. Otherwise a new instance of the items with the rights groups of the current user will be added to the cache.


Performance problems with .Text property

April 16, 2005

Topic

Since I'm using the .Text property of the HtmlPlaceholder object I experience performance problems. Is this a known issue?

Answer

Yes. The implementation of the .Text property is done in a Single-Threaded Apartment (STA) COM object that suffers from serialization problems.

A workaround (or better way) to get the Text content is to use the following code:

public string StripHtmlTags(string source)
{
string strRegExp = "<(.|\n)+?>";
Regex r = new Regex( strRegExp, RegexOptions.IgnoreCase | RegexOptions.Compiled );
string strNoTags = r.Replace( source, "" );
return System.Web.HttpUtility.HtmlDecode( strNoTags );
}


Poor performance

October 2, 2002

Topic

I am experiencing poor performance on my MCMS server. What could be causing this?

Answer

You need to ensure that you are properly testing and developing the site for performance.

First, you should see where you are currently. Use a tool like WAST or ACT to generate load on your machines. Analyze the trace files and make a profile that looks realistic. (i.e. home page hits, searches, car page hits, etc.) Run the profile and see what pages are taking a long time.

Setting the server to be read only will help somewhat, but if the majority of the time is spent actually executing the template code (as opposed to Microsoft® Internet Information Server [IIS] parsing the template, etc.) then the performance gain will be minimal.

Have you considered adding another server to your cluster?

Investigate these questions:

  1. What is your current performance? (current pages / second)
  2. Check the MCMS performance counters (Cache hits/sec, Cache misses/sec)
  3. Are you using Fragment Caching?
  4. Have you done any analysis on your templates to see which ones are slow?
  5. How large is your site? How many pages?
  6. How hard is the SQL Server machine being hit?
  7. Do you do a lot of custom property searches without caching the result?

There is no magic bullet that will make their site perform. You need to gather information first to see where you are currently. Perhaps you are already serving out 60 pages views / second on a PII 300. (doubtful, but you get the idea). If so, they will probably need to add hardware / additional servers to the cluster.

The only information here is that some unknown site running some unknown code is doing a lot of processing. This will probably take a while to track down and decide on the correct course of action, with the easiest answer being "throw more hardware at it". Probably not the correct answer, but the easiest one.

If the performance counters show many Cache misses increase the node cache size.

Note: there is a whitepaper regarding MCMS performance.


Storing 10000 items in a channel

January 29, 2004

Topic

I need to store 10000 postings in one channel. I have heard there is a practical limit of 300 items. Which performance impact Would I expect if I still would store 50000 postings in the channel?

Answer

There are a few problems, all of which are quite disabling.

First, URL transformations will be slowed down tremendously. Instead of iterating over 50 - 400 items to find the one you need, CMS will iterate over 5000-10000. Each of these items gets added to the cache, which means that the cache will generally become less effective (if you have a 20000 item cache, and you have 10000 postings in a channel (each one consisting of both an item for the posting, and an item for the content), you will blow out your cache each time you hit any page in that channel).

As well, any time you access any item in that collection by any method other than GetNodeByGUID, CMS will load the entire collection into memory in order to sort it, security trim it, etc. This means that again, you blow out the cache, and you also tend to consume a lot of memory for this session (CMS wraps each of these objects in a user API object, etc.) It also takes time to load, sort, etc.

Finally, the majority of the UIs are not implemented with this usage in mind. E.g. they do not support paging of data, etc.

Bottom line:
Higher memory consumption
More database activity
Lower cache hit ratio
slower runtime performance
possibly unusable UI pieces due to the amount of data that would need to be displayed (such as picking a posting to hyperlink to in the hyperlink dialog box)


VaryByCustom for Channels

December 23, 2003

Topic

I have a navigation control that is used on my channel rendering script and on most of my postings. This navigation control renders identical content for all items in a channel. Now I would like to increase performance by using ASP.NET output caching. I can see that MCMS provides the ability to cache user controls at the Posting level. Is it possible to do the same on the channel level? I would like to have only one instance of the control per channel in the cache and not a new one for every posting.

Answer

MCMS does not provide this functionality out of the box. But you can easily implement it on your own by doing the following:

Add the following method to your global.asax.cs:

  protected override string GetVaryByCustomStringToken(HttpContext context, string token)
  {
   if (token.ToLower() == "cmschannel")
    return CmsHttpContext.Current.Channel.Guid;
   else
    return base.GetVaryByCustomStringToken(context, token);
  }

This adds a new custom string token (CMSChannel) to the cache evaluation and guarantees that the same cached instance of the user control is used for all postings and the channel rendering script in the same channel.

You now have to add the token to the user control as follows:

<%@ OutputCache Duration="300" VaryByParam="None" VaryByCustom="CMSChannel;CMSControl" %>


WAST against MCMS

August 6, 2002

Topic

Can anyone comment on how many threads should be used to simulate client requests against a standard dual-processor MCMS server? It is also using Commerce Server and SQL Server on the backend server.

Our client has been testing their production servers with 200 threads and 200 unique users using Web Application Stress Tool (WAST). Would you agree that is far too much? I was suggesting 25 is a very busy site.

Answer

Testing MCMS will be very similar to testing any other web application. Ideally, you want to simulate the entire user environment to test the system. (i.e. there are 16 typical types of users, and this is how they normally view the site, click, click, pause, click, pause, click click click). Increase the number of users until the site breaks or it takes too long to get a page. We use Web Application Stress Tool (WAST) or Application Center Test (ACT).

The ideal scenario is to have lots of threads with a long random delay. This will tend to simulate reality better than a few threads. However, to properly do this, you need a lot of client machines, and you need to run the test for a long time (if you wait 2 - 7 seconds between requests, you will need to run a lot of clients to get a decent load, and you will need to run for 20 or 30 minutes to get a decent average. If you are testing specific pages/templates during development, this is not feasible either.

What we tend to do is select a small number of pages (10 or so), and run them for a minute at a time, with 10 seconds warm-up and cool down. On a dual processor machine, 4 threads will probably give you the fastest numbers, while 20 or 30 threads will probably give you a better idea of what will actually happen under load. Again, for ease of use ,we tend to turn off the delay. With a delay, you will need to run the test for much longer.

ASP only allows 25 threads / CPU to be active at any time, so 200 is kind of pointless. If they have a delay involved, then check with perfmon to see how many ASP requests are currently active, how many are waiting, etc.

If it is a developer that is trying to find specific hotspots, take 20 threads or so and no delay. If they are testing the entire site to make sure that they can meet specific goals set forth in a specification, then they need to try and simulate the real environment as much as possible, meaning lots of threads, lots of delay (and lots of client machines to drive WAST or ACT).


Publishing API ASP

The ASP API is still supported in Microsoft® Content Management Server (MCMS) 2002. Questions about ASP and MCMS are covered here.

Listing placeholders


Listing placeholders

October 1, 2002

Topic

This sample code shows how to write out the name of each placeholder on a page.

Answer

<%@ LANGUAGE=VBScript %>
<!--#include virtual="/NR/System/Access/Resolution.inc"-->
<!-- Microsoft® Content Management Server template file -->

List All Placeholders:
<br><br>
<%
Dim pPlaceholders, pPlaceholder
Set pPlaceholders = Autosession.This.Placeholders

For Each pPlaceholder in pPlaceholders
Response.Write(pPlaceholder.Name & "<br>")
Next
%>


Publishing API ASP.NET

One of the greatest improvements in Microsoft® Content Management Server (MCMS) 2002 is support for the .Net platform. The managed API is based on the ASP API but has a number of new features. Not the least of these is the MCMS Application Context. This allows MCMS developers to use the managed API to create .Net Windows Forms.

Accessing Placeholder content using DataSource.RawContent

Administering User Roles with the Publishing API

Creating custom properties for a channel with the Publishing API

Custom placeholder definitions

Displaying the last modified date of a posting in local time

Error message: "COM object that has been separated from its underlying RCW can not be used"

Error message: "Server ODBC error. Please contact the administrator"

Exception when uploading a file to the resource gallery

How can I find out whether a posting is in Authoring or Live mode?

How to retrieve attachment size

Inline code

Is it possible to access a remote machine using the Publishing API?

Is it possible to create a resource gallery with the Publishing API?

Performance problems with .Text property

Sharing resources

SortByName does not work

Unable to authenticate the current user in ASP.NET

Update mode

UserHasRightToBrowse does not work for parent channels

Visual Basic .NET and C#


Accessing Placeholder content using DataSource.RawContent

April 24, 2004

Topic

I have heard that it is not a good idea to use the DataSource.RawContent property to access the content of a placeholder. What is the reason for this?

Answer

Using the DataSource.RawContent property completly bypasses the internal processing of the derived placeholder classes. This means that the content received relies on the current implementation of the placeholder.

Only when the correct properties and methods exposed by the actual placeholder definition are used, can expect to retrieve identical content. This is true even after upgrading the placeholder version with service packs or hotfixes.

So what does bad code and good code look like?

I have seen recommendations to access the Url of an ImagePlaceholder in the current posting using this statement:

bad: string Url = CmsHttpContext.Current.Posting.Placeholders["Image"].Datasource.RawContent.ToString;

The correct method for an ImagePlaceholder is as follows:

good: string Url = ((ImagePlaceholder)(CmsHttpContext.Current.Posting.Placeholders["Image"])).Src;

The same needs to be done for Attachment, Html and XmlPlaceholders:

string Url = ((AttachmentPlaceholder)(CmsHttpContext.Current.Posting.Placeholders["Attachment"])).Url;
string Html = ((HtmlPlaceholder)(CmsHttpContext.Current.Posting.Placeholders["HtmlContent"])).Html;
string Xml = ((XmlPlaceholder)(CmsHttpContext.Current.Posting.Placeholders["XmlContent"])).XmlAsString;

If you are unsure which placeholder type you have, then use the following method:

if (CmsHttpContext.Current.Posting.Placeholders["ph"] is ImagePlaceholder)
{
...
}
if (CmsHttpContext.Current.Posting.Placeholders["ph"] is AttachmentPlaceholder)
{
...
}
if (CmsHttpContext.Current.Posting.Placeholders["ph"] is HtmlPlaceholder)
{
...
}
if (CmsHttpContext.Current.Posting.Placeholders["ph"] is XmlPlaceholder)
{
...
}

If you have any custom placeholder definitions add them to the list above.


Administering User Roles with the Publishing API

March 11, 2003

Topic

Is it possible to administer User Roles with the Publishing API (assign new users, create new user roles, etc.)?

Answer

The current version of MCMS does not expose this functionality. You will have to use the Site Manager application.

However, if you add AD user groups to the MCMS roles, you will be able to administer the members of these groups using ADSI.


Creating custom properties for a channel with the Publishing API

February 8, 2003

Topic

Is it possible to create Custom Properties for a Channel with the Publishing API?

Answer

The MCMS 2002 Publishing API does not support this. You can create Custom Properties for a Channel in the Site Manager application.


Custom placeholder definitions

November 6, 2002

Topic

Using MCMS 2002, I was able to create custom placeholder control. How can I create custom placeholder definitions?

If I open the Placeholder Definition Collection Editor, all the placeholder definitions come from the out of the box placeholders:

- HtmlPlaceholderDefinition
- XmlPlaceholderDefinition
- AttachmentPlaceholderDefinition
- ImagePlaceholderDefinition
- OfficeAttachmentPlaceholderDefinition
- OfficeHtmlPlaceholderDefinition

I want to create something called "MyPlaceholderDefinition" and want it to be listed into the drop-down list below the 'Add' button of this editor. How can I do this?

Answer

Placeholder Definitions are listed and defined in the following config file:

<drive>:\program files\microsoft content management server\server\config\Microsoft.ContentManagement.Publishing.config

Here you need to add a definition for your custom placeholder. You need a DLL that contains the class for the definition and the custom placeholder. In other words, write two c# classes to extend PlaceholderDefinition and Placeholder, and build them into one assembly and make it shared.

The format of the XML is as follows:

<PlaceholderDefinitionType
Assembly="MyPlaceholder, Version=1.0.991.20032, Culture=neutral, PublicKeyToken=bcb3b9103afe8777"
ClassName="MyPlaceholder.MyPlaceholderDefinition" />

Note: the new definition will be listed in MCMS Template Explorer only if there is no error in this line. This means that the assembly must exist, the version must match, the 'PublicKeyToken' must match and the 'ClassName' must match.

If there is an error, there will be no error message displayed from within the Microsoft Visual Studio® .NET UI. However, there will be an event logged in the application event log. The error describes the problem which prevented the type from being included in the list.


Displaying the last modified date of a posting in local time

February 8, 2003

Topic

How can I display the last modified date of a posting in the local time of the browser ?

Answer

Use the following sample code:

    Response.Write("<script language='JavaScript'>");
    Response.Write("  d = new Date('"+posting.LastModifiedDate+" GMT');");
    Response.Write("  document.write(d.toLocaleString());");
    Response.Write("</script>");


Error message: "COM object that has been separated from its underlying RCW can not be used"

February 12, 2003

Topic

I keep receiving the following error message when browsing my site: "COM object that has been separated from its underlying RCW can not be used". What can be the problem?

Answer

You need to check your code for COM Interop calls. It seems that a COM component is instantiated by one thread and then used by another. One thread may have unloaded the COM component so the other thread finds that the component is gone.

One common explanation is storing an object reference in a static variable. When multiple instances can be retrieved in parallel (which is common for a web page) this means that the second reference will override the first one. This leaves it orphaned and causes this error.

So don't use static variables to store references to COM objects. Channel., Posting, Resource objects all are implemented in COM so don't store MCMS objects in static variables.


Error message: "Server ODBC error. Please contact the administrator"

October 22, 2004

Topic

Each time I set the Channel.StartDate property (or any of the channel's properties for that matter), it sends back a "Server ODBC error. Please contact the administrator" message. No further details were given.

What is going on here?

Answer

This can happen if different users are updating this property at the same time. In addition it can also be caused if the update is done using CmsApplicationContext and if this context is not disposed before creating a new one. In this situation the lock created in the not disposed CmsApplicationContext can still be active.

Take a look at the documentation for the StartDate property which says:
---
This property can only be set if the CanSetProperties property has a value of true for the current User and the PublishingMode is Update. However, even if both of these conditions are satisfied, an attempt to set this property can still fail such as when, for example, the object is being edited concurrently by another user. Therefore, setting this property should be enclosed in appropriate try...catch blocks.
---

Calling Dispose() is a mandatory when working with different CmsApplicationContext objects.


Exception when uploading a file to the resource gallery

November 16, 2005

Topic

During upload of a resource gallery item using the CreateResource method an exception occurs. What can be the reason for this?

Answer

The following reasons can cause such an exception:

  • The file you are going to upload has 0 bytes in size. MCMS does not support empty resource gallery items or emtpy local attachments.
  • The MCMS system account does not have permissions to access the file that should be uploaded. The MCMS system account at least requires read permission on the file.
  • Other IO problems on the file (exclusive lock, ...)


How can I find out whether a posting is in Authoring or Live mode?

February 8, 2003

Topic

How can I find out whether the current posting is in Authoring mode or Live mode?

Answer

Microsoft.ContentManagement.WebControls.WebAuthorContextMode is meant to be used for this purpose.

Sample code:

    WebAuthorContextMode mode = WebAuthorContext.Current.Mode;
    if (mode == WebAuthorContextMode.AuthoringNew ||
        mode == WebAuthorContextMode.AuthoringPreview ||
        mode == WebAuthorContextMode.AuthoringReedit)
    {
       // in authoring mode
    } else if (mode == WebAuthorContextMode.PresentationPublished ||
               mode == WebAuthorContextMode.PresentationUnpublished)
    {
       // in presentation mode
    }


How to retrieve attachment size

December 2, 2003

Topic

I need to know the size of an attachment attached to an AttachmentPlaceholder. How can I achieve this?

Answer

We need to differentiate between local attachments and shared attachments to answer this.

  1. For shared attachments from the resource gallery the following method will work:
    • extract the GUID from the URL property of the AttachmentPlaceholder
    • CmsHttpContext.Current.Searches.GetByGuid(GUID) will give you the Resource
      object of the resource gallery item attached to the Attachment Placeholder
    • the Size property of the resource object will give you the size.

      AttachmentPlaceholder attPh = ...;
      string[] substrings = attPh.Url.Split("/")
      string GUID = "{" + substrings[3] +"}";
      CmsHttpContext context = CmsHttpContext.Current;
      Resource rs = context.Searches.GetByGuid(GUID) as Resource;
      if (rs != null)
      {
      string Size = rs.Size;
      }
  2. For local attachments, you need to do an HttpRequest HEAD to the URL of the Attachment placeholder. Here you can read the size from the HTTP header returned by the HttpRequest.


Inline code

October 8, 2002

Topic

Is it possible to access MCMS objects in ASPX template files directly, or do I have to code this logic in the codebehind file?

Answer

This code demonstrates how you can use MCMS code directly in an ASPX page. Although most of your code should be in codebehind pages, it is possible that you may want to use inline code in some cases.

This code writes out the MCMS display name of the current channel:
<%@ Import Namespace="Microsoft.ContentManagement.Publishing"%>
<%=Microsoft.ContentManagement.Publishing.CmsHttpContext.Current.Channel.DisplayName%>


Is it possible to access a remote machine using the Publishing API?

June 3, 2003

Topic

CMSApplicationContext.AutheticateAsUser contains an overloaded method that has a parameter called remoteMachineAddress. Is it possible to connect to a remote machine using this method?

Answer

This overload should not be used. It is the IP address of the machine that the user is using to login. However, since the API is has no remote interface, this must always be the local IP address.

In EAP/Beta builds it was possible to request the CmsAuthenticationTicket from the CmsApplicationContext instance. In order to create a ticket, MCMS needs an IP address for the requesting machine (which is encrypted within the ticket). The capability of requesting the ticket was removed but this overloaded method was not removed.


Is it possible to create a resource gallery with the Publishing API?

February 8, 2003

Topic

Is it possible to create a Resource Gallery with the Publishing API?

Answer

The MCMS 2002 Publishing API does not support this. You can create a Resource Gallery in the Site Manager application.


Sharing resources

October 18, 2002

Topic

My customer wants the ability to share the content of a placeholder in many pages of his web site. He wants some feature similar to the resource gallery, but with a block of text/html (so he can use the replace feature of the resource gallery).

Answer

You could store the content that you want to share in placeholders within a separate posting. In the pages where you want to show the content of that placeholder, you can just include a web control that retrieves the content of that placeholder and displays it. In addition, you could create a specific channel for this type of shared placeholder. This is a very common scenario and very easy to implement with MCMS 2002.

Also note that in 2002 you can access the content of a resource gallery item as a .NET file stream with Resource.OpenReadStream.


SortByName does not work

March 13, 2003

Topic

Why does SortByName() not work in the following code:

String ResourcePath = ...;
   ResourceGallery gallery =
         CmsHttpContext.Current.Searches.GetByPath(ResourcePath) as ResourceGallery;
   gallery.Resources.SortByName();

   foreach (Resource rs in gallery.Resources)
   {
        // here the resources are unsorted :-(
   }

Answer

The behavior you are seeing is by design. All collection properties in the API return copies of the collection. The primary reason for this is so you can write code like the following:

    Channel c = … // Some channel.
    foreach( Posting p in c.Postings )
    {
        if( p.Name.StartsWith( "a" ) )
        {
            p.Delete();
        }
    }

If the Postings collection was not a copy of the original then this code could fail since the collection that you are iterating over would be changing while you are iterating over it. In your example you are retrieving a copy of the original collection and sorting it then dropping your reference to it.

Another reason why "gallery.Resources.SortByName();" does not effect the original collection is that it might be misinterpreted as actually permanently sorting the collection. When you sort the collection the new sort order is not made permanent because different templates etc. might want to show the postings in a different order. There really is no one 'correct' sort order.

The correct coding is as follows:

    String ResourcePath = ...;
    ResourceGallery gallery =
            CmsHttpContext.Current.Searches.GetByPath(ResourcePath) as ResourceGallery;
    ResourceCollection MyCollection = gallery.Resources;
    MyCollection.SortByName();
    foreach (Resource rs in MyCollection)
    {
        // here the resources are sorted :-)
    }


Unable to authenticate the current user in ASP.NET

February 10, 2003

Topic

I'm using CmsApplicationContext.AuthenticateAsCurrentUser within my ASP.NET application but it does not work. What could be wrong?

Answer

CmsApplicationContext is not ASP.NET aware. It is meant to be used primarily from stand alone Win32 applications. You can still do what you want, but you cannot use AuthenticateAsCurrentUser since this will take the identity that the thread is running under. This will be the ASPNET user by default. This is true unless you enable impersonation but this will cause a performance hit, so you probably don’t want to do it.

Instead, simply use the AuthenticateUsingUserHandle method and pass in the WindowsIdentity.Token which you get from casting HttpContext.Current.User.Identity to a WindowsIdentity. This will give you the identity of the currently authenticated Windows user:

   CmsApplicationContext cmsContext = new CmsApplicationContext();

   WindowsIdentity ident = HttpContext.Current.User.Identity as WindowsIdentity;
   cmsContext.AuthenticateUsingUserHandle(ident.Token,PublishingMode.Update);

Note: This method does not work with Forms authentication. The only works with Windows Authentication because HttpContext.Current.User.Identity is a WindowsIdentity. If you are doing forms authentication, then HttpContext.Current.User.Identity is a FormsIdentity. The only way to authenticate as a Windows user when using ASP.NET forms authentication are:

  1. Hard code in (or read from a database or config file) a username and password and use CmsApplicationContext.AuthenticateAsUser. This is done in the MSIB solution (they do this to login Gold/Silver/Bronze type users who are actual Windows users even though the login does not accept Windows credentials)
  2. Redirect the user to a page in a different web application which is configured for Windows authentication, and then use CmsFormsAuthentication.AuthenticateUsingWindowsToken (passing in HttpContext.Current.User.Identity.Token) and CmsFormsAuthentication.SetAuthCookie (specifying false for the setAspNetCookie parameter). This will overwrite the MCMS authentication cookie (MCMS does not have the concept of a per-application authentication cookie like ASP.NET does, each user has one MCMS authentication cookie for the entire domain) so when they go back to the forms authentication web application, ASP.NET will still think the user is the forms authenticated user, but MCMS will think they are now that Windows user. This means that they will not use CmsApplicationContext, they will simply use CmsHttpContext.Current.

    This is the recommended scenario for allowing Windows users to author on a forms authentication site which only allows forms logins as MCMS guest users (i.e. the forms login page does not accept Windows credentials).


Update mode

October 18, 2002

Topic

I'd like to automate a script to programmatically modify placeholder content. But I receive an error "Not in Edit Mode" when attempting to do this.

My questions is, how can I programmatically force the posting into Edit mode so I can copy the placeholder contents and then programmatically Approve or Submit the posting?

Answer

There are two ways that you could do this in the Microsoft® Content Management Server API.

1. Use the CmsHttpContext property "ChannelItem.QueryStringModeUpdate".

From the MCMS documentation:

This property will generally be used for the principal objects that are based on classes that are derived from ChannelItem. These classes are: Channel and Posting.

The value returned by this property can be used to communicate session information across HTTP requests.

The information in the query string is necessary when you want to call MCMS Publishing API objects in an ASP file stored outside the database. The Autosession object in the external ASP file uses the posting the query string was obtained from as its This and ThisPosting properties. The external file's ThisChannel property is the parent channel of the posting that created the query string.

This property is similar to the QueryString property, except that it guarantees that the ASP script receiving the query parameters will use the Autosession 'Update' mode.

2. Use the CmsApplicationContext.

You could create a new application context in update mode.

Note: you cannot use object references from the standard HttpContext and update them in the new application context. You need to retrieve these objects again. The best way would be to locate them via the GUID.

Here is some sample code to do this:

AppContext = new CmsApplicationContext();
AppContext.AuthenticateAsCurrentUser( PublishingMode.Update );

// Use GUID from CmsHttpContext
pPosting = context.Searches.GetByGuid( strGuid ) as Posting;

// Your update code - including the Submit and approve actions

// Destroy the application context
AppContext.Dispose();


UserHasRightToBrowse does not work for parent channels

December 30, 2003

Topic

I have a channel GUID or URL, and I also have a user account id, how I can check whether the user has right to access the channel?

I tried CmsHttpContext.Current.UserHasRightToBrowse(channel.guid) because when the user currently in the child channel, uses this method to check the access right of parent channel, it always returns true independent of the assigned user rights.

Answer

The behaviour you are seeing is by design. It was implemented to allow navigation controls to work in "islands of unreachability" (i.e. postings which a user has rights to but the user does not have rights to all of the parent channels in between the posting and the root channel).

With this feature, the navigation will display the parent channels even though the user does not have rights to them. If the user does click on one of these channels in the navigation, then MCMS issues a 401 because the user does not actually have rights to it.

When you ask UserHasRightToBrowse for a specific channel, it takes into account the current context (i.e. current posting). So if you have:

Channel A
|
Channel B
|
Posting B
|
Channel C
|
Posting C

If you are currently viewing Posting C and you ask UserHasRightToBrowse(Channel B), it will always say yes since you must have rights to Posting C and therefore you are granted read rights to all the parent channels in this context. However, if you try to browse Posting B, you will be denied access because you really don't have rights to Channel B.

Are you using this for navigation purposes? Is there a good reason why you have created these islands of unreachability in your channel hierarchy? Can these islands of unreachability be removed?

If not you might want to try using a CmsApplicationContext instead. Since this does not have the concept of a current posting, UserHasRightToBrowse should return the desired result (i.e. in the above scenario, it will always return false for Channel B).


Visual Basic .NET and C#

August 6, 2002

Topic

Can you use Visual Basic .NET and C# in the same project? I have tried using Visual Basic .NET in a C# project and I get errors (Visual Studio cannot open the ASPX in design view). I tried it the other way and the same thing happened.

Answer

Microsoft® Visual Studio® .NET currently has a limitation that only one language can be used in a web application project at a time. In the common language runtime this limitation does not exist.


SCA

This section deals with questions related to SCA usage.

"Cannot create a file when that file already exists."

Background processing

Error Message: "'ConfigWindow' is undefined"

Error message: "The user name you supplied is not a local administrator"

Failed to get Virtual Web Server Collection


"Cannot create a file when that file already exists."

September 4, 2003

Topic

When running the SCA or DCA, the following problem may be encountered:

An unknown error has occured
800700b7: Cannot create a file when that file already exists.
-2147024713
(ISOK File nrvirtualWeb site.cpp, Line 2335)

Answer

MCMS is trying to create an Internet Information Services (IIS) Metabase entry that already exists.

To resolve this problem remove the NR, CMS and/or MCMS virtual directory on the Web site you are trying to set the entry point to. Then run the SCA or DCA again.


Background processing

November 13, 2002

Topic

What happened to the settings for background processing? In MCMS 2001 they were in the SCA.

Answer

Changes have been made to move more information about background processing into the MCMS database. Based on this, the decision was made that the best management interface would be through the Microsoft SQL Server™ agent.

From the MCMS 2002 CHM:

Using MCMS Background Cleanup

Background processing in MCMS 2002 uses Microsoft SQL Server Agent jobs to clean up MCMS databases. The Microsoft SQL Server Agent job does the following:
Deletes expired postings (not by default, you must enable this option)
Removes unused resource gallery items
Fixes URL links to resource galleries
To ensure optimum performance, perform background processing on a regular basis on sites that are undergoing content change. In addition, you should defragment the indexes in the database regularly.
The following is a summary of how the MCMS 2002 background processing works:
When you install MCMS or upgrade to MCMS 2002, the Database Configuration Application (DCA) sets up background processing by inserting stored procedures into each database and configuring a Microsoft SQL Server Agent job to run these stored procedures.
If you rerun the DCA and select an existing database that already has an associated Microsoft SQL Server Agent job, DCA does not change that job.
If the selected database does not have an associated Microsoft SQL Server Agent job, DCA creates one.
The name of the Microsoft SQL Server Agent job is BGP-<database name>.
You can use SQL Enterprise Manager to modify the Microsoft SQL Server Agent job information. For example, you can change the following defaults:
The job is configured to run at 1 a.m., daily.
The job does not delete expired postings. You must enable this option.
When the background processing job starts, stops, completes, or encounters an error, a text-only log file is written. The log file is located in the Microsoft SQL Server Agent directory.
When using background processing, note the following issues:
Background processing will not start if the Site Deployment is running. An error message is written to the Event Log.
If you stop Microsoft SQL Server, Microsoft SQL Server Agent is also stopped. When you restart Microsoft SQL Server, however, Microsoft SQL Server Agent is not restarted automatically. You must restart Microsoft SQL Server Agent manually.
If the DCA is installed locally and Microsoft SQL Server is installed on a remote computer, the DCA cannot start Microsoft SQL Server Agent. You must start Microsoft SQL Server Agent manually.
For more information about Microsoft SQL Server backup and restore, see http://go.microsoft.com/fwlink/?LinkId=9559.


Error Message: "'ConfigWindow' is undefined"

December 28, 2005

Topic

When I try to open the SCA and click on CONFIGURE button it throws an error. The Error window says 'ConfigWindow' is undefined and when scrolled back to previous error messages it says' access is denied'.

What can I do to resolve this problem?

Answer

This can happen if the DCOM security settings are misconfigured. Please try the following steps:

  1. Start\Run: DCOMCNFG.exe
  2. Navigate to Component Services\Computers\My Computer\right-click, Properties\Default COM Security tab\Access Permissions\Edit Default
  3. Add your user to the user lists
  4. Reboot the machine


Error message: "The user name you supplied is not a local administrator"

July 5, 2004

Topic

When I open the Server Configuration Application (SCA) I get an error that the user is not an administrator on the local machine. But the current user is actually a local administrator. What should I do?

Answer

This error can happen when the Internet Information Server (IIS) server side includes are not correctly installed. Please follow the hints in the MCMS SP1 readme file to reinstall the IIS server side includes.


Failed to get Virtual Web Server Collection

February 15, 2005

Topic

When I try to open the Web Panel in the SCA I receive an "Unexpected Error! Failed to get Virtual Web Server Collection" error and "Access is denied. (-2147024891) " in details.

Answer

This indicates a permission problem on the registry. Please download regmon from www.sysinternals.com and check for access denied problems (ACCDENIED).

Correct all problems listed to correct the problem.


Search

The Microsoft® Content Management Server (MCMS) model for search functionality is to provide flexible integration options. A number of search technologies have been integrated with MCMS.

Excluding navigation menu text

SharePoint Portal Server search whitepaper

Supporting incremental searches


Excluding navigation menu text

July 12, 2003

Topic

I've got a MCMS 2002 Web site which is indexed by Microsoft SharePoint™ Portal Server 2001. It's all working fine but I have a problem that I've not been able to crack.

The navigation menus on the Web site are constructed as user controls with code behind them to read the channels and construct the menu. These user controls are simply dropped onto each template that I create. The problem is, if I search on a word that is in these menus then the search results contain every page in the Web site, as the menus are part of every page in the Web site. Does anyone know how I can get my search engine to look at everything in the Web page except the navigation menus?

An additional issue is that the page summaries generated by Microsoft SharePoint Portal Server always generate the same content for all pages because the navigation menu is placed in the HTML file before the real content.

Answer

This is a known issue. To bypass it you can do the following.

Within your navigation control perform the following test:

if (Request.Headers["User-Agent"].IndexOf("MS Search") < 0)

Only render the navigation when this test is true. This means that the navigation control will not be rendered when Microsoft SharePoint Portal Server search requests the page.

However, only the start page will be indexed because no navigation exists. For this reason you have to include a second navigation control at the very end of your template (I have named my control RobotNavigation). It must be at the end to bypass the page summary issue.

This control needs to do a similar test :

if (Request.Headers["User-Agent"].IndexOf("MS Search") >= 0)

This navigation control should use a unique word for the link text. This ensures that this word is never searched. If it was searched, you would get lots of hits on it. I use "RbtLnk" (short for RobotLink) as the link text.


SharePoint Portal Server search whitepaper

October 2, 2002

Topic

How can I integrate Microsoft® SharePoint™ Portal Server Search with MCMS 2002?

Answer

Search is discussed in this TechNet article about MCMS and Microsoft SharePoint Portal Server:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnmscms02/html/mcmssrch.asp


Supporting incremental searches

October 7, 2003

Topic

How do I configure MCMS pages/templates to support incremental searches (assuming that the crawler determines what has been changed using the "Last-Modified" header)?

Answer

Use the following code in the Page_Load event of the template to emit the last modified date stored in MCMS:

private void Page_Load(object sender, System.EventArgs e)
{
// Add last modified date to http response
Response.AppendHeader("Last-Modified",
CmsHttpContext.Current.Posting.LastModifiedDate.ToString("r"));
}


Security and Rights

Security is obviously of paramount importance. Questions are security and Microsoft® Content Management Server (MCMS) rights are discussed here.

AESecurityService

Cookies

Error message: "Logon failed due to invalid or expired authentication token."


AESecurityService

August 6, 2002

Topic

I know MCMS is running as an ISAPI filter in IIS. What is 'AESecurityService' for?

Answer

The AESecurity service is used by MCMS to perform authentication requests when resolving NTDS or AD groups. Also, it is used to request user information for login. It is a required service.

The AESecurityService service is not dependent on Microsoft Internet Information Server (IIS) (it uses RPC). Even if you have the IISAdmin service stopped, the AESecurity service will still be running and you can still access MCMS resources. This is true as long as they are being accessed through the CmsAppContext (instead of CmsHttpContext).


Cookies

October 2, 2002

Topic

Does MCMS automatically produce any kind of cookies?

Answer

The only cookies that MCMS generates are authentication cookies. These are generated if you are using forms based authentication. For ASP sites (which use Windows authentication) there is also a cookie generated to keep track of whether the browser has previously provided the user's Windows credentials.

There are no channel specific cookies. If you have a pure guest site, then no (MCMS) cookies will be generated at all.


Error message: "Logon failed due to invalid or expired authentication token."

April 3, 2003

Topic

Error message: "Logon failed due to invalid or expired authentication token."

I followed the steps in "Enabling Forms-Based Authentication" of the Site Development help file. I have configured my MCMS site for anonymous access in both Microsoft Internet Information Server (IIS) and the SCA.

I used the IUSR_<machinename> user and have placed it in a "subscriber" rights group. I have modified the web.config to include "Forms" authentication. Anonymous access is working and logging in works. However, when the cookie expires, I receive this error. If I delete my cookies, I can log back in and everything works fine. Any suggestions?

Answer

When the session expires, you will automatically get the Login page. Because the session has expired, there is no current CmsHttpContext. Trying to access the current context within the login page will generate the expired or invalid authentication token exception.

Don't try to access the current context anywhere on the login page. If you must, put it in a try catch block and handle the error when it occurs.


SharePoint Portal Server Integration

Topics about Content Integration Pack (CIP) and MCMS 2002 Connector for SharePoint Technologies

0x80041206 Error indexing your MCMS site

403 Error when loading MCMS Site

404.3 When Performing Site Deployment after Installing SharePoint

500 Error after installing Office SharePoint Portal Server 2003

501 error when attaching an SharePoint Portal Server document

All CMS content ends up in the non_portal_content index when using SearchSetup.exe

Are WordML and InfoPath the only supported formats for Spark

Connector for SharePoint Technologies and MCMS 2002 Standard Edition

Does MCMS 2002 Connector for SharePoint Technologies require the use of SharePoint Portal Server?

Enabling TraceListener Support

Error Appears with SharePoint Portal Server Controls in Visual Studio.NET

Error loading WoodgroveNet - Required permissions cannot be acquired

Error message: "Invalid object name 'RepositorySynchronization'."

Error when reading registry

Error when using SearchSetup.exe

Error: Could not connect to the Microsoft Content Management Server

Forms authentication

How do I configure CMS with Forms Authentication on a Portal Server

How do I configure MCMS and SPS 2003 to work on the same virtual server

How do I create search scopes for MCMS Channels

MCMS and Connector for SharePoint Technologies

MCMS Template Hyperlink Style Does Not Display Correctly

SearchPropertyCollection.xml and Custom Properties

SharePoint Portal Server and Secure Sockets Layer

SharePointDocumentPlaceholderDefinition not available in Placeholder Definition Editor in VS.NET

SPS Sites do not show in the SharePoint Library Document Finder Dialog

The search engine was unable to process your request

The virtual server that is referenced here is not in the config database

Why are my documents not synchronized between CMS and SPS

You have not specified a valid Channel


0x80041206 Error indexing your MCMS site

December 18, 2003

Topic

When performing an index on your non-portal content with http://localhost/channels. The index does not work, and the following is logged in your gatherer log:

"The address could not be found, (0x80041206 - A server error occurred. Check that the server is available.)"

If you browse to http://localhost/channels you see the following error:

"Debugging is not supported under current trust level settings."

Answer

Remove the channel rendering script on /Channels or modify the web.config file located in <drive>:\Program Files\Microsoft Content Management Server\Server\MCMS\McmsHomeport and ensure that you have set <trust level="Full" originUrl="" />

For details on "trust level" see the following article:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gngrftrustsection.asp


403 Error when loading MCMS Site

December 18, 2003

Topic

After installing the MCMS Connector for SharePoint Technologies and SharePoint Portal Server 2003, I now get a 403 when I load an MCMS site.

Answer

Look in the Internet Information Server (IIS) log. You will see a 403.18 which means "Cannot execute requested URL in the current application pool." Ensure that MCMS and Sharepoint Portal Server are configured to use the same application pool.

This is also explained in the following KB article: 835248


404.3 When Performing Site Deployment after Installing SharePoint

December 18, 2003

Topic

After installing the MCMS Connector for SharePoint Technologies and SharePoint Portal Server 2003, I receive a 404 when I perform Site Deployment.

Answer

If you look in the IIS log you will se a 404.3 which means "MIME map policy prevents this request." Here is the snippet:

2003-10-14 03:59:04 157.60.92.190 GET /NR/rdonlyres/SD-50CF196B-ED35-4815-B87C-E3B1B10107D2-10758.SDO - 80 domain\username 157.60.92.190 - 404 3 50

You must apply the SDO MIME type to the /NR/RdOnlyRes virtual directory.

Ensure to configure the mime type as follows:

Extension: ".sdo"
MIME type: "application/x-mcmscontentpackage."


500 Error after installing Office SharePoint Portal Server 2003

December 18, 2003

Topic

When performing Site Deployment or using Authoring Connector after installing MCMS 2002 SP1 and SharePoint Portal Server 2003 on the same virtual server, the following error occurs:

"The remote server returned an error: (500) Internal Server Error."

Answer

Ensure you have set <trust level="Full" originUrl="" /> in the following web.config files:

/MCMS/SiteDeployment/web.config
/MCMS/web.config

Note: ensure that this setting is NOT(!) added to the following file:

../IIS_CMS/OfficeWizard/web.config

For details see the following article:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gngrftrustsection.asp

See also the following KB article: 835248


501 error when attaching an SharePoint Portal Server document

October 14, 2003

Topic

I'm trying to attach a document from Microsoft® SharePoint™ Portal Server 2001 to my current MCMS document. In the Microsoft Internet Information Server (IIS) log of the MCMS server machine I have found a 501 error for a 'PUT' request that copies the document to the MCMS server machine. What might be wrong?

Answer

A 501 error means "Method not implemented". It seems WebDav is not enabled on your MCMS 2002 box.

Do the following checks:

  • Ensure that the following registry value does not exist:
    \HKLM\System\currentcontrolset\services\w3svc\parameters\DisableWebDav
  • Ensure that Everyone has read and read/execute permissions on the httpext.dll.
  • Check the advanced ACL settings as the IIS Lockdown may add a custom 'Deny' for 'Everyone' here.


All CMS content ends up in the non_portal_content index when using SearchSetup.exe

March 8, 2004

Topic

The sample data contains \cmssharepointconnector\internal, and \cmssharepointconnector\external. I’ve run SearchSetup once for each of these:

searchsetup.exe -url "http://localhost/cmssharepointconnector/internal/" -user "domain\user" -password "password" -crawl "1" -portalurl "http://servername/"

searchsetup.exe -url "http://localhost/cmssharepointconnector/external/" -user "domain\user" -password "password" -crawl "1" -portalurl "http://servername/"

What I’ve noticed is that you get the index created in the default non_portal_content index. If I enable advanced SPS search, is there a way to create separate indexes for each channel?

Answer

No. This behavior is by design. When you use SearchSetup.exe, which is required for the MCMS Connector for SharePoint Technologies search control to function properly, it places all the content into the non_portal_content index.

You can setup seperate indexes and scopes, but you will not be able to utilize the MCMS Connector for SharePoint Technologies search control to search on the content. You will only be able to use the SPS Search control and by doing so you will not have the benefit of MCMS rights filtering.

For more information on this, see the following article: How do I create search scopes for MCMS Channels


Are WordML and InfoPath the only supported formats for Spark

December 18, 2003

Topic

Will the requirement for inline viewing of documents be maintained for the release of Spark or are WordML and InfoPath the only supported formats?

Answer

Currently we only support InfoPath and WordML documents for this feature.


Connector for SharePoint Technologies and MCMS 2002 Standard Edition

October 21, 2003

Topic

Will Connector for Sharepoint Technologies for MCMS 2002 and Microsoft SharePoint™ Portal Server 2003 which is currently in Beta be supported with MCMS 2002 Standard Edition.

Answer

Yes.


Creating a content source

© Microsoft Corporation. All rights reserved.


Does MCMS 2002 Connector for SharePoint Technologies require the use of SharePoint Portal Server?

December 18, 2003

Topic

Does MCMS 2002 Connector for SharePoint Technologies require the use of Microsoft® SharePoint™ Portal Server?

Answer

The only feature that requires Microsoft SharePoint™ Portal Server is the search feature.

The Web Part feature allows MCMS content to be published through and visible on a Microsoft SharePoint Portal Server site. Web Part pages can also be created when only Windows SharePoint Services is installed, therefore it is also possible to use this feature when only Windows SharePoint Services is installed.

The ability to publish content from Microsoft SharePoint Portal Server into MCMS uses the underlying WSS Object Model, therefore WSS is required for this to work, but not Microsoft SharePoint Portal Server.

On a production MCMS server where no authoring should take place only MCMS is required. Not Microsoft SharePoint Portal Server and not WSS as the content is already stored in the MCMS placeholders.


Error Appears with SharePoint Portal Server Controls in Visual Studio.NET

March 8, 2004

Topic

Error Appears with SharePoint Portal Server Controls in Visual Studio.NET

Answer

In Microsoft Visual Studio .NET, when you open the intranet sample data that has the SharePoint Portal Server look and feel, the SharePoint Portal Server controls show the following error message: "Error Creating Control." This error message is displayed because SharePoint Portal Server controls do not support design-time behavior in Visual Studio .NET. You can ignore this error message and edit the page as usual.

Note: This is documented in the readme file.


Error loading WoodgroveNet - Required permissions cannot be acquired

December 18, 2003

Topic

After installing Windows® SharePoint Services or SharePoint Portal Server, I get the following error when loading WoodgroveNet:

"Required permissions cannot be acquired."

Answer

Ensure you have set <trust level="Full" originUrl="" /> in the web.config files for your application and the MCMS virtual application.

For details on "trust level" see the following article:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/gngrftrustsection.asp


Error message: "Invalid object name 'RepositorySynchronization'."

August 23, 2005

Topic

When saving a document using the SharePoint Document Placeholder I get the following error message:

Save Placeholder Failed
Error Details: Invalid object name 'RepositorySynchronization'.

What can I do to correct this problem?

Answer

This problem can happen when the MCMS database does not contain the RepositorySynchronization table. This can happen if the database was switched after Connector for SharePoint Technologies was installed.

To correct the problem do run the PostMSIConfig.exe tool located in the following directory:

\Program Files\MCMS Connector for SharePoint Technologies\CMS\Bin\

This tool will create the table.


Error when reading registry

July 18, 2003

Topic

When I try to use the Content Integration Pack 2 between MCMS 2002 and Microsoft SharePoint™ Portal Server2001 I am having trouble publishing modifications to documents. I can publish the SharePoint document in MCMS the first time, but I am not able to republish the modifications.

I get the following error in the SharePoint Portal Server server event log:

The VB Application identified by the event source logged this Application
VBRuntime: Thread ID: 1580,
Logged: Application Name = The Title is not provided
Method = ReadFromRegistry
UserID = Administrator
Error in reading value from registry,

and

The VB Application identified by the event source logged this Application
VBRuntime: Thread ID: 1576 ,Logged:
Application Name = ModConstants
Method = ReadRegistry
UserID = Administrator

Error in reading value from registry: SPSServerName,

The VB Application identified by the event source logged this Application
VBRuntime: Thread ID: 1572 ,Logged:
Application Name = The Title is not provided
Method = GetWorkSpaces
UserID = Administrator Invalid argument,

The VB Application identified by the event source logged this Application
VBRuntime: Thread ID: 1600 ,Logged:
Application Name = GetWorkSpaces
Method = GetWorkSpaces
UserID = Administrator
Invalid argument,

The VB Application identified by the event source logged this Application
VBRuntime: Thread ID: 1596 ,Logged:
Application Name = SPSCMSAttachments
Method = CheckSubscriptions
UserID = Administrator Failed to create object : GetWorkspaces.ClsWorkspaces,

Answer

To resolve this, go to Control Panel, Administrative Tools, Component Services, Computers, COM+ Applications, and then CIP Common. In the Identity tab of CIP Common, ensure that the given user is a local administrator.


Error when using SearchSetup.exe

March 8, 2004

Topic

When using SearchSetup.exe, I keep getting the following error:

Error in search setup : Object reference not set to an instance of an object.

Answer

You cannot use "localhost" for the -portalurl parameter. You must specify a server name. Here is an example of the correct usage:

SearchSetup.exe -url "http://localhost/Channels" -user "domain\user" -password "password" -crawl "1" -portalurl "http://servername/"


Error: Could not connect to the Microsoft Content Management Server

December 18, 2003

Topic

After installing Microsoft® SharePoint™ Portal Server, you cannot launch the MCMS Site Manager.

This is the error:

"Error: Could not connect to the Microsoft Content Management Server <servername>. Either the web service is not running, or there are network problems that are keeping you from connecting to the server, or the server is not accessible through MCMS Site Manager.
Source: LinkConfig::LaunchLogon"

Answer

You need to ensure that you have excluded the /NR path from Windows SharePoint Services.


Forms authentication

October 14, 2003

Topic

If I install MCMS 2002 and SPS 2003 into the Default Web site, I’m only able to support Windows Authentication. I haven’t been able to get Forms authentication to work on my MCMS site. What could be wrong?

Answer

The reason this does not work is that the SPS web.config file clears all modules and adds back only Windows authentication.

As a workaround you can add the following to the HttpModules section in the web.config file for your application:

<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule"/>

The MCMS site needs to be running as its own virtual application (i.e. not in the root).


How do I configure CMS with Forms Authentication on a Portal Server

March 9, 2004

Topic

After I extend my virtual server to be a Microsoft® Office Microsoft SharePoint™ Portal Server 2003 (Microsoft SharePoint Portal Server) portal, the Microsoft Content Management Server 2002 (MCMS) application running on that virtual server fails to authenticate with Forms Authentication. How do I get around this?

Answer

The problem stems from the fact that all the modules in the Microsoft SharePoint Portal Server web.config are cleared by the <clear /> element and then the WindowsAuthentication HTTP Module is added back in forcing windows authentication to take place since it is now in the ASP.NET request processing pipeline and Forms Authentication no longer exists. Since configuration settings are inheritable, the child directories inherit configuration settings of the parent. As a consequence, your application could inherit some unwanted HTTP modules as part of the parent configuration; therefore, you need a way to remove those unwanted modules or add back in the appropriate ones. Here is the Http Modules section of the Microsoft SharePoint Portal Server web.config

<httpModules>
<clear />
<add name="OutputCache" type="System.Web.Caching.OutputCacheModule" />
<add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" />
<!--<add name="Session" type="System.Web.SessionState.SessionStateModule"/>-->
</httpModules>

You will see they clear it out and then add only WindowsAuthentication back in. There are a couple workarounds:

  1. Use the <remove> node in the web.config of your MCMS application to remove the WindowsAuthentication module and then add back in FormsAuthentication as in my example below.

    <httpModules>
    <remove name="WindowsAuthentication" />
    <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule"/>
    <httpModules>
  2. Add only the FormsAuthentication module to your MCMS application.

    <httpModules>
    <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule"/>
    <httpModules>
  3. Modify the Microsoft SharePoint Portal Server Web.Config and add back in the FormsAuthentication module.

    <httpModules>
    <clear />
    <add name="OutputCache" type="System.Web.Caching.OutputCacheModule" />
    <add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" />
    <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule"/>
    <!--<add name="Session" type="System.Web.SessionState.SessionStateModule"/>-->
    </httpModules>

Note: Using Forms Authentication with MCMS Connector for SharePoint Technologies is not supported. This FAQ topic was created to assist those that are running MCMS and Microsoft SharePoint Portal Server on the same virtual server without the integration piece.


How do I configure MCMS and SPS 2003 to work on the same virtual server

March 8, 2004

Topic

How do I configure MCMS and Microsoft® Office SharePoint™ Portal Server 2003 to work on the same virtual server?

Answer

Please see the following article for information on configuring MCMS and Microsoft Office SharePoint Portal Server 2003 to work together when they are on the same server:

835248 - You experience configuration errors when you run MCMS 2002 and Microsoft Office SharePoint Portal Server 2003 on the same virtual server


How do I create search scopes for MCMS Channels

March 8, 2004

Topic

How do I create search scopes for MCMS Channels using the MCMS Connector for SharePoint Technologies?

Answer

Search scopes allow users to narrow their searches based on the topics, areas, and content sources of items on the portal. The same concept can be applied for your MCMS Channel structure.

There are a few things to take into account when deciding to do this:

  1. Creating search scopes for Microsoft® SharePoint™ Portal Server will only work if you enable Advanced Search Administration mode in Microsoft SharePoint Portal Server.
  2. You will not be able to utilize this scoping feature from the MCMS Connector for SharePoint Technologies Search Control and will not be able to return a result set from this control using the newly defined indexes.
  3. You will be searching from the Microsoft SharePoint Portal Server Search Control which does not do any rights filtering on the MCMS content based on your role.
  4. You will not use SearchSetup.exe that ships with MCMS Connector for SharePoint Technologies to setup your content sources as this places everything in the non-portal content index.

Note: The following example assumes you have a MCMS/SPS small farm configuration (single machine deployment) with the CmsSharePointConnector sample data installed.

  1. Create two indexes to separate the content
    1. Name index 1 "Internal"
    2. Name index 2 "External"
  2. Create the content sources to place in the indexes.
    1. Create a content source called "InternalSource" and place it in the "Internal" index. Map this to http://<server>/CmsSharePointConnector/Internal/.
    2. Create another content source called "ExternalSource" and place it in the "External" index. Map this to http://<server>/CmsSharePointConnector/External/.
  3. Crawl and populate the indexes.
  4. Create two scopes, one for each source/index and limit the scope to the appropriate content source.

After doing so you will be able to search only internal content or only external content from the sample data using the Microsoft SharePoint Portal Server Search Control.


MCMS and Connector for SharePoint Technologies

November 25, 2003

Topic

The new Connector for Sharepoint Technologies can be integrated with Microsoft® SharePoint™ Portal Server and with Windows SharePoint Services (WSS). What exactly needs to be installed on my MCMS server to use the features of this connector?

Answer

  1. MCMS and Microsoft SharePoint Portal Server must be installed on the same machine to author or view a page using a template containing Microsoft SharePoint Portal Server navigation controls.
  2. MCMS and WSS must be installed on the same machine to author a page using a template containing the SharePoint library placeholder.
  3. Only MCMS is required to view pages created using a template containing the SharePoint library placeholder.


MCMS Template Hyperlink Style Does Not Display Correctly

March 18, 2004

Topic

The MCMS Template Hyperlink Style Does Not Display Correctly for the sample data that ships with the MCMS Connector for SharePoint Technologies.

Answer

When you insert a WordML document inline using the SharePoint library placeholder, the style used for all hyperlinks on the page may use the default style of underlined blue or purple, even though you specified a different style in the MCMS template. This happens because the style output by the WordML style sheet in MCMS Connector for SharePoint Technologies is hard-coded to use the default style. To resolve this, open the .xslt file for WordML documents and change or remove the following code:

a:link {color:blue;text-decoration:underline;text-underline:single;}
a:link {color:purple;text-decoration:underline;text-underline:single;}

Note: This is documented in the MCMS Connector for SharePoint Technologies Readme file.

Another workaround would be to add the !important clause to the following entry in the SPS.CSS stylesheet located in the following directory: \Program Files\Common Files\Microsoft Shared\web server extensions\60\TEMPLATE\LAYOUTS\1033\STYLES. This forces the required style to be applied to the main menu links and prevents you having to touch any documents.

.ms-phnavtableone a
{
font-family: Tahoma;
font-size: 8pt;
font-style: normal;
font-weight: bold;
color: #666666!important;
text-decoration: none;
}

This change prevents a later defined <A> class from overriding the style.


SearchPropertyCollection.xml and Custom Properties

April 30, 2004

Topic

I set the PropertyType property of the SearchMetaTagGenerator to be PropertiesFromXMLFile. When viewing the meta tags generated by the SearchMetaTagGenerator control - on postings based on this template - no custom properties appear. Only the standard properties from the xml file are listed. What am I doing wrong?

Answer

The help document for the MCMS Connector for SharePoint Technologies incorrectly describes how you should modify the SearchPropertyCollection.xml file. To fix this, for each custom page property that you want the SearchMetaTagGenerator control to output, add the following line to the .xml file:

<PropertyDefinition uri="urn:schemas.microsoft.com:htmlinfo:metainfo:<custom property name>" type="string" name="<custom property display name>" PropertyName="<custom property display name>" indexable="1" retrievable="1" />

Note: The help document omits the PropertyName attribute which is required.


SharePoint Portal Server and Secure Sockets Layer

March 8, 2004

Topic

When modifying the properties of my web part, the following error appears:

"This page contains both secure and nonsecure items."

Answer

If your SharePoint Portal Server site is accessed through Secure Sockets Layer (SSL), the following warning may appear when you edit the custom properties of the MCMS Page Listing Web Part: "This page contains both secure and nonsecure items." To resolve this, set your MCMS server to use SSL, and in the MCMS Page Listing Web Part Site URL text box, use https://.

Note: This is documented in the readme file.


SharePointDocumentPlaceholderDefinition not available in Placeholder Definition Editor in VS.NET

January 5, 2005

Topic

We installed MCMS 2002 Connector for SharePoint Technologies on our development server. We are able to use the sample content and templates to add an XML document from a SharePoint site and display it inline as HTML in the MCMS page. However, we are not able to add a SharePoint Document placeholder definition using the Placeholder Definition Collection Editor in Visual Studio .NET. When I click the arrow to the right of the Add button, I see several choices for different placeholder definitions to add, but there is no
SharePointDocumentPlaceholderDefinition choice. I

What could be the problem?

Answer

Please check in the Microsoft.ContentManagement.Publishing.config file and if the SharePointDocumentPlaceholderDefinition has been added by the installation process.


SPS Sites do not show in the SharePoint Library Document Finder Dialog

March 8, 2004

Topic

When browsing for Microsoft® SharePoint™ Portal Server "Sites" in the SharePoint Library File Finder for MCMS Connector for SharePoint Technologies, my SPS "Sites" do not appear in the "Sites" node of the treeview control. In fact, nothing appears.

Answer

This is a WSS behavior and it is by design. The current implementation performs the following:

  • It enables easy access to any "Site" [SPWeb/SPS area] within the current "Site Collection" [SPSite/SPS portal] that the MCMS page is running under. This current site collection is selected by default and the "…" browse button will allow you to select a site from the tree view.
  • The sites created using the Microsoft SharePoint Portal Server "Create site" features described below are each different "site collections" of WSS team sites that are somewhat accessible and connected to the Microsoft SharePoint Portal Server portal, but not part of the same "site collection" as the portal.
  • For any Site [SPWeb] accessible through the object model on that server, whether or not it is on the current site, you can paste in a URL to that site and the doc finder dialog will be able to find it and list the doc libs and files in that Site. This allows access to anything you cannot browse to and also allows quick access to things on the current site collection without browsing.
  • If you want to restrict document selection for a specific placeholder control to only allow docs from one site [SPWeb] then you can specify it in the calatog.xml file for that placeholder control. In that case the dialog will initialize already pointing to that location and no browsing will be required. (details are in the customization docs)

The idea is that, by default, browsing will help you select docs from the current site collection and it will help you get access to any accessible site collection.

Another noteworthy comment here is that a server can handle thousands of SPS "Sites". The dropdown box or treeview control would not be a good delivery method for this.


The search engine was unable to process your request

March 23, 2004

Topic

I have Microsoft® SharePoint™ Portal Server 2003 and MCMS 2002 installed on seperate machines. I've installed Microsoft Content Management Server 2002 Connector for SharePoint Technologies and when I try to search using the search control, the following is returned:

Search Status: The search engine was unable to process your request. This problem may be the result of a query that only contains common words, such as "a","the", or "about", which are ignored by the search engine, or you do not have sufficient search privileges.

Answer

This problem most likely occurs because you have not assigned search rights to the application pool identity account that your MCMS application runs under. Please see the "Assigning Search Rights to the Application Pool Identity Account" section in the help file. This is also documented in the installation guide.


The virtual server that is referenced here is not in the config database

February 6, 2004

Topic

I get the following error when clicking on a SharePointDocumentPlaceHolder control in a new page:

Server Error in '/CmsSharePointConnector' Application.
--------------------------------------------------------------------------------

The virtual server that is referenced here is not in the config database.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Runtime.InteropServices.COMException: The virtual server that is referenced here is not in the config database.

Stack Trace:

[COMException (0x81070552): The virtual server that is referenced here is not in the config database.]
Microsoft.SharePoint.Library.SPRequestInternalClass.OpenSite(String bstrUrl, Boolean bGetUrlOnly, String& pbstrServerRelativeUrl, Guid& pgSiteId, Int32& pOwnerID, Int32& pSecondaryContactID, DateTime& pdtLastContentChange, DateTime& pdtLastSecurityChange) +0
Microsoft.SharePoint.Library.a.a(String A_0, Boolean A_1, String& A_2, Guid& A_3, Int32& A_4, Int32& A_5, DateTime& A_6, DateTime& A_7)

[SPException: The virtual server that is referenced here is not in the config database.]
Microsoft.SharePoint.Library.a.a(String A_0, Boolean A_1, String& A_2, Guid& A_3, Int32& A_4, Int32& A_5, DateTime& A_6, DateTime& A_7)
Microsoft.SharePoint.SPSite.c()
Microsoft.SharePoint.SPSite.get_ID()
Microsoft.SharePoint.Portal.PortalApplication.GetContext(HttpContext context)
Microsoft.SharePoint.Portal.PortalApplication.GetContext()
Microsoft.SharePoint.Portal.PortalContext.get_Current()
Microsoft.SharePoint.Portal.PortalContext.get_Current()
Microsoft.SharePoint.Portal.WebControls.SiteInfo.GetSiteInfo()
Microsoft.SharePoint.Portal.WebControls.ResourceFilePath.SharedImageUrl(String strImageFileName)
Microsoft.SharePoint.Portal.WebControls.ResourceFilePath.SharedImageUrl(String strImageFileName)
Microsoft.SharePoint.Portal.WebControls.ResourceFilePath.GetResourceFileUrl(ResourceFileContext rfcFile, String strFileName)
Microsoft.SharePoint.Portal.WebControls.ResourceFilePath.GetResourceFileUrl(ResourceFileContext rfcFile, String strFileName)
Microsoft.SharePoint.Portal.WebControls.CategoryNavigationWebPart..ctor()
_ASP.InternalChannelScript_aspx.__BuildControl__control7() +167
_ASP.InternalChannelScript_aspx.__BuildControlPageBody() +216
_ASP.InternalChannelScript_aspx.__BuildControlTree(Control __ctrl) +306
_ASP.InternalChannelScript_aspx.FrameworkInitialize() +30
System.Web.UI.Page.ProcessRequest() +85
System.Web.UI.Page.ProcessRequest(HttpContext context) +18
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute() +179
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +87

Answer

This is a configuration problem in your environment. If you install Microsoft Content Management Server 2002 (MCMS) and SharePoint Portal Server (SPS) or Windows SharePoint Services (WSS) on the same computer, you must also install them on the same virtual server (a virtual server is equivalent to an IIS Web site).

MCMS and SPS/WSS can either be installed on the same virtual server (Web site), or different virtual servers on different boxes, but not different virtual servers on the same box.

Please refer to the installation docs that shipped with the MCMS Connector for SharePoint Technologies.

See also:

836637 - Configuration errors occur when you run MCMS 2002 and SharePoint Portal Server 2003 on different virtual servers


Why are my documents not synchronized between CMS and SPS

December 18, 2003

Topic

How do I keep Microsoft® SharePoint™ Portal Server documentation in MCMS pages synchronized? I have set the checkboxes in the Microsoft SharePoint Portal Server placeholder to keep the content synchronized, but it doesn't seem to work. I update the document in SharePoint Portal Server, but do not get the new version in MCMS. Does this happen automatically or is there a tool that needs to be run?

Several places mention the Data Synchronization tool to synchronize SharePoint Portal Server documents that have been included in MCMS pages. In other words, the tool with pull the newest version of the document from SharePoint Portal Server into MCMS; however, I cannot find this tool.

Answer

You must synchronize the documents that you copy into MCMS 2002 with the Microsoft SharePoint Portal Server document placeholders that change in the Windows SharePoint Services environment. To update the documents you must run the WssDocumentUpdater tool in the folder where MCMS 2002 is installed.

For example: C:\Program Files\Microsoft Content Management Server\Server\bin\WssDocumentUpdater.exe.

You can run the WssDocumentUpdater tool from the command line, or you can use Windows Task Scheduler or a similar service to run it on a regular basis.

Note: Only those documents that you specify to synchronize when you attach a Windows SharePoint Services document to a SharePoint placeholder will synchronize.

You can schedule your document synchronization on a regular basis. You may want to adjust this based on how often they are modified in your SharePoint libraries. If you make a lot of modifications, it is recommended that you synchronize your documents on a daily basis. If you modify your documents infrequently, you can schedule them to run on a weekly basis.


You have not specified a valid Channel

March 15, 2004

Topic

When I am configuring the custom properties of my Page Listing Web Part in the Microsoft Content Management Server (MCMS) 2002 Connector for SharePoint Technologies, it always throws the following error when choosing a channel:

You have not specified a valid Channel

Answer

This can be caused by any of the following:

  • Having the "Map Channel Names to Host Header Names" feature enabled in the Server Configuration Application (SCA) for MCMS 2002.
  • Specifying an invalid path to your channel.
  • Specifying an invalid channel name or a name that does not exist.
  • Incorrect syntax for the path that is required. The syntax should be in the form of "/ChannelName/"

Please also see the following:

831796 - The Map Channel Names to Host Header Names feature is not supported


Site Deployment

This section covers both the Microsoft® Content Management Server (MCMS) 'Site Deployment' option and any questions related to deploying an MCMS site.

The MCMS 'Site Deployment' feature is used to move MCMS objects from one MCMS server to another. For example, if you were to use Site Deployment to move page from one server to the other, you would also move over all the page dependencies (like templates and resources).

401 during Site Deployment

403 during Site Deployment

404 during Site Deployment

405 during Site Deployment

500 Errors With SD Import

Content not deployed to destination site

Deleted items are not deployed

Error message: "ASP 104 - Operation not allowed"

Error message: "Fatal Execution Engine Error" when running SDAPI script in a Terminal Server Window

Error message: "File or assembly name <name>.dll, or one of its dependencies, was not found."

Error message: "Overflow: 'CDate'"

Error message: "The underlying connection was closed."

Error message: "There is an error in XML document"

Error Message: "This request requires buffering data to succeed"

Error when non-administrator executes SDAPI script

Exception when using C# SDAPI application in a Terminal server session

Export to Object Package filename.sdo failed

How is the node cache affected by database import?

Is it possible to export a resource gallery or a template gallery using Site Deployment API?

Problems with client-side Site Deployment API within ASP.NET

SDAPI access denied

Site Deployment created an invalid SDO file

Site Deployment does not export correctly. No postings are included, only Folders/Channels.

Site Deployment report does not list the exported items on large exports

The handle is invalid.

The XML parser could not parse the tag it was given

Timeout when importing or exporting an SDO file.


401 during Site Deployment

October 7, 2003

Topic

I get an HTTP 401 error in Site Manager when trying to export or import items. What might be causing the problem?

Answer

  1. Ensure that the 'ASPNET' account has the "Impersonate a client after authentication" privilege.
  2. Ensure that the /MCMS virtual directory has anonymous access enabled.
  3. Ensure that the /NR virtual directory has anonymous access enabled.


403 during Site Deployment

October 21, 2003

Topic

I get an HTTP 403 forbidden with "Directory Listing Denied" when running Site Deployment. What could cause this?

Answer

You can check these things:

  • The problem can occur when the MCMS Node cache size is not big enough. The default value is often too small
  • Ensure that anonymous access is enabled on the /NR and /MCMS virtual directories
  • Check if clearing the node cache solves the problem
  • Try to switch to Named Pipes. Go to Microsoft® SQL Server™ Client Network Utility and make sure Named Pipes protocol is the first one in the list of enabled protocols. Also ensure that "shared memory protocol" is disabled
  • Ensure that the following the virtual folder /MCMS/SiteDeployment has the "scripts only" settings in the IIS MMC properties.
  • Ensure that sufficient disk space is available during SiteDeployment. Monitor all disks. The problem can occur if the SiteDeployment process runs out of disk space.
  • If SQL authentication is being used then check if the user name or password contain one of the following characters. If this is the case either use a different Username/Password or request hotfix 837727 from Microsoft Support.

    List of affected chars:
    • = (equals)
    • " (double quote)
    • ; (semi-colon)
    • ' (single quote)
  • Ensure that the Server\Temp directory has the following permissions:

    • Administrators group (FULL)
    • CMSSystem (FULL)
    • Everyone (FULL)
    • System (FULL)


404 during Site Deployment

October 14, 2003

Topic

I received the following error message when doing a Site Deployment Export/Import:

The remote server returned an error: (404) Not Found.

What is the problem?

Answer

  1. Check that the "rdonlyres" folder within /NR virtual directory is a virtual directory and not a physical folder (the icon needs to be a folder with a small globe in the lower right edge). If it is a physical folder create a new virtual directory below /NR with name "rdonlyres" which points to "\program files\microsoft content management server\server\rdonlyres".

  2. If this is Windows Server 2003 please check the Microsoft Internet Information Server (IIS) log file. If the error you receive is a 404.3 then you need to add a mime-type for the .SDO file to the /NR/rdonlyres directory.

    IIS 6.0 no longer supports files which do not have a mime-type assigned. The mime-type needs to be configured as follows:

    Extension: .sdo
    MIME type: application/x-mcmscontentpackage
  3. If this is Windows Server 2003 please also ensure that ASP.NET is set to "allowed" in the IIS MMC in the Web Service Extensions section.


405 during Site Deployment

December 17, 2003

Topic

When trying to import an SDO file using the Site Manager I receive a "405 method not allowed" response. What could be the problem?

Answer

ASP.NET may not be registered correctly in Internet Information Server (IIS). Run the following command to re-register ASP.NET with IIS:

(for .NET framework 1.0)
"\WINNT\Microsoft.NET\Framework\v1.0.3705\aspnet_regiis.exe" -i

(for .NET framework 1.1)
"\WINNT\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe" -i


500 Errors With SD Import

August 6, 2002

Topic

I have noticed that during a Site Deployment import, there are HTTP 500 errors being thrown on the site. Once the import was complete, the site was back to normal.

We think that some of our templates were expecting certain objects (i.e. channels, resources, etc.) to be available, but during import the expected objects may not have been present; this results in ASP scripting errors (HTTP 500) (unless there is template code checking wherever an object is available).

What kind of prescriptive guidance is there for doing imports? Until now I had always assumed that it should be fairly safe to perform an import on a live site. If this is not true – and we should assume that a site is taken offline during the import – this creates a fairly significant availability issue for shops that want to create a Development - Staging – Production scenario.

Answer

In MCMS 2002, this problem has been greatly minimized. Site Deployment is faster and therefore these types of issues are not as much of a concern.

For large site updates, a long import can cause these problems by locking objects. A workaround would be to import into another MCMS server running from a different database and then flipping the database connection through the Site Configuration API. Microsoft Internet Information Server (IIS) will need to be stopped and started.

The problem has to do with how SQL server handles row/page/table locks, and the nature of the transaction with importing. When a row in the the database is modified, SQL locks it until the transaction has completed. What this means, is that any request to the database that needs to look at this data will block. If the import takes 20 minutes, the request will block for 20 minutes. This is obviously a bad thing. To make things more complicated, SQL will increase the size of the lock on it's own when it thinks it is necessary (i.e. lock enough rows, and the entire table will be locked.) This exasperates the situation, with requests to the database getting blocked even when they do not even touch the rows that are locked.

The decision was made that rather than have the Web site unresponsive for the length of the import, that any requests to the database would fail. This means that during an import, and request that needs to access the database will not succeed. Note that any request that can be fulfilled by the caches will operate correctly, and the user will not detect any change.

So pages that are not in the cache will not be rendered, and any page that makes calls to the database (specifically the searches like custom prop searches and approval searches) will fail as well.

Site deployment does not import files at all. So if your templates have references to things on the file system (.GIFs, .INCs, etc) and you are changing your templates, there may be some errors thrown while import is going on. The problems would start when you changed the include files and continue until the new templates were in place. Or they would start when the new templates arrived and continue until the new include files were available. Unfortunately, the only way around this is to update your site offline so that you can be sure the include files and the templates arrive at the same time.

This would apply whenever you are changing code assets of the site - which is probably a pretty major revision. In those cases, consider doing rolling updates of your site using App Center.

For smaller updates to the site, site deployment should work well. Updates to content and anything else that is in the MCMS repository are handled just fine while the site is live. The availability of resources, channels, etc is managed so that objects with dependencies are there when asked for. Odds are it was code assets that caused the problems.


Content not deployed to destination site

August 7, 2006

Topic

When deploying content from an authoring environment to a production (live) environment, some pages are not updated properly. What can cause this?

Answer

The most probable reason for the updates not to be seen on the destination server (production/live system) is that new content was not exported from the authoring server.

When updating content an author will do one of the below action that will set the page back to a Waiting for Moderator approval status:

  • Set the expiry date or set any property of the page
  • Modify page content, any placeholder and save the page

As with MCMS 2002 only approved items will be exported, the updated content will not be exported unless it is submitted again for approval and approved. Failing to approve again the content, the export package will not include any change done on the item and thus will leave the content unchanged from its previous state on the destination server.

See also in the MCMS docucumentation:

\Troubleshooting MCMS 2002
\Troubleshooting MCMS Site Authoring Tools
\Content Revisions Do Not Appear on Live Site

If an author adds some information to a page that was previously published and then saves the page, the new content will appear in the edit site only. The live site will not display the new content until it has been approved.

\Managing Site Structure and Workflow
\Deploying web Site Content
\About Exporting and Importing Objects

Make sure that all objects to be exported have been approved by your assigned approver before exporting them. Any object that is submitted but not approved will not be exported. Objects on the destination server with dependencies to objects being imported will be affected by the import operation. For example, if a template is replaced during import, all of the pages using the template will automatically use the new template.

\Deploying MCMS 2002
\Types of Site Deployment
\Incremental Site Deployment

You perform an incremental site deployment to export only MCMS-managed objects that have changed since the last deployment. MCMS managed objects include channels and approved pages, as well as the resources that they depend on.


Deleted items are not deployed

October 14, 2003

Topic

We are using incremental deployment scripts to deploy the content of our Web site to our production server. Usually we limit the deployment by specifying a channel start GUID. When using such a script items deleted in Site Manager do not get deployed to the production server. How can we solve this problem?

Answer

The reason for this is that deletion in Site Manager is not really a delete. It is actually a move to the Deleted Items folder. If you purge this folder then the item gets deleted.

Regardless of whether the item is still in the Deleted Items folder or already purged it no longer has an association with your start channel. To ensure that the items deleted in Site Manager really get deleted on the production server you have to manually deploy the Deleted Items folder.

Use the script below to export the Deleted Items folder to an SDO file:

set pCmsDeployExport = CreateObject("CmsDeployServer.CmsDeployExport.1")

pCmsDeployExport.AuthenticateAsCurrentUser()

strPackageFileName = "your-filename"

strReportUrl = pCmsDeployExport.Export(strPackageFileName, 0,"{E4D1911E-9DD3-11D1-B44E-006097071264}")

set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate("http://localhost" & strReportURL)


Error message: "ASP 104 - Operation not allowed"

August 4, 2003

Topic

I am using MCMS 2002 SP1 on Windows Server 2003. I am getting the following error when trying to import an SDO Package (I can export fine):

Error: 0
Description: 007~ASP 0104~Operation not Allowed~
Severity: 5
Source: NRXMLMarshaler.NRFileUploadResponse.1
Debug info: N/A
Extra info: N/A
Client Source: CImProgress::ProcessPackage
Recommended Action: N/A

Answer

This is caused by a new feature in Windows 2003. In Windows Server 2003, you can now configure the maximum amount of data for resource uploading within IIS, but the default limit is too low for MCMS site deployment.

To resolve this problem follow the instructions in the MCMS 2002 SP1 Readme and in the following KB article:

824471 - You may receive an error message when you try to run Site Deployment against an SDO package that is larger than 200 KB


Error message: "Fatal Execution Engine Error" when running SDAPI script in a Terminal Server Window

June 7, 2004

Topic

I have created a VBS script to do site deployment. This script works fine when being executed in a command window on the console of the server machine. But executing it in a Terminal Server session a message box with the following message comes up: “Fatal Execution Engine Error (0x7927c038)”.

Answer

The .NET policy through Terminal Server restricts access to the Microsoft.ContentManagement.Common assembly. To resolve the issue, CSCRIPT.EXE needs to be correctly configured to allow it to use the MCMS assembly from within a Terminal Server session:

  1. Open Programs\Administrative Tools\Microsoft .Net Framework 1.1 Configuration
  2. Right click "Application"
  3. select "Add"
  4. Click the "Other" button
  5. Type %systemroot%\system32\cscript.exe in the File name box and press "OK"
  6. Right click "Configured Assemblies" and click the "Add" button
  7. Click "Choose Assembly" and select "Microsoft.ContentManagement.Common" assembly and click on the "Select" button
  8. Click on the Finish button


Error message: "File or assembly name <name>.dll, or one of its dependencies, was not found."

October 22, 2003

Topic

I am seeing this error message "File or assembly name <name>.dll, or one of its dependencies, was not found. (<name> is random)".

Error ID:      -2147352567
Source File:
Source Method: NRSiteDeployServer
Description:   File or assembly name ifdy1rnx.dll, or one of its dependencies, was not found.

What could be wrong?

Answer

Here are some things to consider:

  1. This error can occur if the ASPNET account doesn't have permission to write to the WinNT\Temp (system temporary) directory.
  2. This error can also happen if you run an MCMS application compiled for .NET framework 1.1 on .NET framework 1.0


Error message: "Overflow: 'CDate'"

July 10, 2003

Topic

On one of our MCMS machines, we always get an error upon export and import from Site Manager. The import seems to work, but the report fails.

The report generates the following error:

------------------------------------------
Generated on: Microsoft VBScript runtime error '800a0006'

Overflow: 'CDate'

/NR/System/ClientUI/Report/SDReportInfo.INC, line 47
------------------------------------------

What is making the date conversion fail?

Answer

This can happen when the locale on used by the ASP engine is not the US-English locale. Use the following steps to resolve the problem.

For Windows 2000:

  1. Add the following regkey according to KB306044
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLEAUT\
    VarConversionLocaleSetting = 2 (DWORD)
    (you might need to create the OLEAUT key if it does not already exist)
  2. Control Panel => Regional Options
  3. On the General tab select "Set default..." and change the language to "English (United States)"
  4. Restart machine

For Windows Server 2003:

  1. Add the following regkey according to KB306044
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLEAUT\
    VarConversionLocaleSetting = 2 (DWORD)
    (you might need to create the OLEAUT key if it does not already exist)
  2. Control Panel => Regional and Language Options
  3. under the "Regional Options" tab change "Standards and Formats" to "English (United States)"
    under the "Advanced" tab change "Language for non-Unicode programs" to "English (United States)" and click the apply to "default users and account settings" in advanced tab.
  4. Restart machine


Error message: "The underlying connection was closed."

December 17, 2003

Topic

Side Deployment fails on my box. In the Event log I see the following message: "The underlying connection was closed." How can I solve this?

Answer

If this problem occurs on Windows Server 2003 with II6 then the problem is most likely a restrictive configuration of IIS. Check out KB 826210 to resolve the issue.

If this does not solve the issue or the problem happens on Windows 2000 then the problem might be a problem in the network connection (e.g. a failure on the network card, a misconfiugred firewall, ...)


Error message: "There is an error in XML document"

September 4, 2003

Topic

I get the following error during a Site Deployment import:

Error Information
An error has occurred that has interfered with the generation of this report. Please try the operation again, and contact your system administrator should this error persist.

Error ID: -2147352567
Source File:
Source Method: NRSiteDeployServer
Source Line: 0
Description: There is an error in XML document (10, 30).
Recommended Action:

Answer

The XML Parser is complaining about an invalid character from the source Server. Check your application log to find the precise location of the System.Xml.XmlException and then search the XML file (open it in Internet Explorer). This will help you find out what the error is and clean the posting.


Error Message: "This request requires buffering data to succeed"

February 8, 2006

Topic

When running Site Deployment import using Site Manager or client-side SDAPI I receive the following error message: "This request requires buffering data to succeed".

What can I do to resolve this problem?

Answer

This problem can occur if anonymous access has been removed from the /NR/System/SdUpload virtual directory in Internet Information Server (IIS).

Please ensure that anonymous access is enabled on /NR and all included subdirectories and also on /MCMS and all included sub directories to allow Site Manager and Site Deployment work correct.


Error when non-administrator executes SDAPI script

April 13, 2005

Topic

When a user that is not a local administrator trys to execute a server-side SDAPI script on the MCMS server machine he gets the following error message:

C:\export-server.vbs(8, 5) AEServerObject.dll: Extended error: [What=''] [LCID='1033'] [SourceFile='nrmetadatakey.cpp'] [SourceFileLine='279'] [DebugInfo=''] [RecommendedAction=''] [ExtraInfo=''] [UniqueErrorId='10004'] [Severity='5'] [Source='AEServerObject.dll'] [CategoryId='0']

Is it required to be a local administrator to do the export?

Answer

No it is not required to be a local administrator. But in order to execute the Authenticate... method in the script it is required that the user running the script has the SeImpersonatePriviledge.

To assign impersonation privileges

  1. Click Start, click Control Panel, click Administrative Tools, and then click Local Security Policies.
  2. In the Local Security Settings window, expand Local Policies, click User Rights Assignment.
  3. In the User Rights Assignment folder, right-click Impersonate a client after authentication, and then click Properties.
  4. In the Properties dialog box, click Add User or Group.
  5. In the Select Users, Computers, or Groups dialog box, add the appropriate user or group, and then click OK.
  6. In the Properties dialog box, click OK.


Exception when using C# SDAPI application in a Terminal server session

March 10, 2004

Topic

When using server side site deployment in my C# application to import an SDO file from inside a Terminal Server session then I get the following result:

Fatal Execution Engine Error (0x7927bb38)
when calling into the CmsDeployImport object.

This works fine when logging on locally to the machine. What's wrong?

Answer

This can be caused by the following reasons:

  1. The account used had no write access to the %temp% directory
  2. The .net policy didn't allow the assembly to be used in the TS context.

You have to add the application in the in 'Microsoft .NET Framework 1.1 Configuration' to the trusted applications list.


Export to Object Package filename.sdo failed

February 9, 2003

Topic

I see this Error when I export using Site Deployment: "Export to Object Package <filename>.sdo failed"

Answer

There are multiple reasons for this problem:

  1. If SQL server and MCMS server are installed on the same box, then ensure that the "shared memory protocol" is disabled in the "SQL client network utility".
  2. The amount of data or the time required for the export exceeds the limitations set in the ..cmsroot$\server\mcms\web.config:

    <httpRuntime executionTimeout="3600"
    maxRequestLength="1024000"
    useFullyQualifiedRedirectUrl="false"
    minFreeThreads="8"
    minLocalRequestFreeThreads="4"
    appRequestQueueLimit="100"/>

    (the settings here are for a one hour timeout and 1 GB data)


How is the node cache affected by database import?

May 27, 2003

Topic

How is the node cache refreshed? For example, if I have all my nodes in the cache, then I make a change (e.g. an import). Is the node cache actively managed? Will MCMS mark the affected nodes as changed?

Answer

The MCMS node cache is a map of node GUIDs to nodes. The nodes at this level are totally independent of each other. A change to one does not impact any others. When a change to a particular node is detected (i.e. an entry in the database change table), the node is tossed out of the cache and is re-read when it is next requested.

When a change to any node is detected, the upper level (output, fragment, etc.) caches are cleared, because we don't know the dependencies involved. For example, what URLs are invalid because of a name or state change, what additional channels have to be added to navigation, etc.

The MCMS server checks for updates in the database once every 6 seconds during normal runtime - and on the start of each session in design time. This way, we can make sure that edits are always occurring with the current data and also prevent production database stress.


Is it possible to export a resource gallery or a template gallery using Site Deployment API?

February 8, 2003

Topic

Is it possible to export a resource gallery or a template gallery using the Site Deployment API?

Answer

The Site Deployment API only can export channels and postings and resources associated to these postings. Images inside a Placeholder on an exported page will be exported but it is not possible to export resources or templates directly.

This can be done using the Site Manager.


Problems with client-side Site Deployment API within ASP.NET

February 9, 2003

Topic

I'm using the client-side Site Deployment API from within an ASP.NET application. When I do this, Internet Information Server (IIS) hangs on me. What could be wrong?

Answer

This has been fixed in MCMS 2002 Service Pack1. You should not experience this problem when MCMS 2002 SP1 is installed.

The issue was that the MCMS 2002 client-side Site Deployment API was not allowed within a service (including IIS or Scheduler Service). The reason for this was that the client-side Site Deployment API used WININET.DLL. This DLL cannot be used within a service.


SDAPI access denied

February 13, 2003

Topic

When using the Site Deployment API (SDAPI) in an ASP.NET application, I cannot import the SDO file. I get an access denied error. The same code works in a console application. What's wrong?

Answer

Here are some things to consider:

  1. You may be using AuthenticateAsCurrentUser. This will not work in an ASP.NET environment. Instead use the following code:

    WindowsIdentity ident = HttpContext.Current.User.Identity as WindowsIdentity;
    cmsDeployImport.AuthenticateUsingUserHandle(ident);
  2. The ASPNET_WP account may not have read access to the SDO file.


Site Deployment created an invalid SDO file

February 8, 2003

Topic

Site Deployment Export does not create a valid SDO file. Instead the file contains HTML code. What could be wrong?

Answer

Here are some things to investigate:

  1. This will happen if the /NR and /MCMS virtual directories do not have anonymous access enabled or if the phyiscal files and directories behind the /NR and /MCMS directories do not have "everyone read" ACL permissions set.
  2. Open the "SQL Client Network Utility" and disable "shared memory protocol". Also move "named pipe" to the top of the list of supported protocols.
  3. Increase the node cache size in SCA. It has been reported that a small Node Cache size can cause this.
  4. Check that the "rdonlyres" directory within /NR virtual directory is a virtual directory and not a physical folder (the icon needs to be a folder with a small globe in the lower right edge). If it is a physical folder create a new virtual directory below /NR with name "rdonlyres" which points to "\program files\microsoft content management server\server\rdonlyres"
  5. Check that the /MCMS virtual directory is a web application (the icon needs to be a box with a globe in it)
  6. Check that the "SiteDeployment" folder in /MCMS is a web application and not a physical folder (the icon needs to be a box with a globe in it).
  7. Check that a virtual directory named "CMS" exists in the /MCMS web application. Ensure that it points to "\program files\microsoft content management server\server\IIS_CMS" and is a virtual directory (the icon needs to be a folder with a small globe in the lower right edge)
  8. ensure that the ASPNET account has full control permissions on the TEMP directory and the "rdonlyres" directory within /NR virtual directory.


Site Deployment does not export correctly. No postings are included, only Folders/Channels.

February 21, 2003

Topic

Site Deployment does not export correctly. No postings are included, only folders and channels. What could be wrong?

Answer

Open the "SQL Client Network Utility" and disable "shared memory protocol". Also move "named pipe" to the top of the list of supported protocols.


Site Deployment report does not list the exported items on large exports

August 23, 2005

Topic

When I create a large SDO file with many thousand items the export report does not list the exported content.

How can I correct this problem?

Answer

This is caused by a design limitation in the product. Site Deployment will not list the exported items if the total number of exported items is higher than 10.000.

A workaround would be to ensure that less than 10.000 items are being exported.


The handle is invalid.

November 4, 2003

Topic

I'm receiving the following error message during Site Deployment in Site Manager:

Error: 6001
Description: The handle is invalid.
Severity: 5
Source: aesecurityclient.dll reposturl.cpp 323
Debug info:
Extra info:
Client source: ClmProgress::DoReport
Recommended Action:

What is the solution for this problem.

Answer

  1. Please check if this problem only occurs to one specific user. Try to logon to your machine with a different user and check if the problem is gone. If yes, then this can be caused by a corruption in the user profile. Please remove the old profile and check if the problem is gone.
  2. This can also be caused by a timeout happening while doing Site Deployment. Please check out the article discussing Timeouts in this section.


The XML parser could not parse the tag it was given

February 9, 2003

Topic

I see this error message during an SDO Import: "The XML parser could not parse the tag it was given". What could be wrong?

Answer

There are multiple different possible reasons and solutions for this error. Some issues are fixed in CMS 2002 Service Pack 1 - so it is highly recommended to install SP1.

The Site Manager application expects to receive XML messages from the MCMS server. This error generally occurs when the Site Manager receives an HTML error message from the MCMS server. In recent versions of MCMS, this error message was enhanced so that the HTML is included in the error message. Make sure you read this entire error message, it can be your best clue for resolving this issue.

Other things to consider:

  1. The SDO file being imported may be invalid. This can be checked with WinZip. If Winzip is able to open the SDO file the SDO file should be ok. If the SDO file is invalid check on the exporting machine if the /NR and /MCMS virtual directory has anonymous access enabled (required) and that the physical file behind the /NR and /MCMS directory have "everyone read" ACL rights.

  2. Memory problems. Increase the virtual memory of the MCMS server.

  3. Internet Explorer caching issues. Clear the Internet Explorer browser cache, especially the content of the Content.IE5 hidden directory: Delete all files and folders in the \documents and settings\<UserName<\Local Settings\Temporary Internet Files\Content.IE5 directory (including hidden files).

  4. Clearing the MCMS memory cache often solves this problem.

  5. Check for permission problems. Check the permissions on the TEMP directory and on the physical files behind the /NR and /MCMS virtual directories on the importing server. Also ensure that anonymous access is enabled on the /NR and /MCMS virtual directory.

  6. The Microsoft Internet Explorer Webcontrols may not be installed correctly or the wrong version of the Webcontrols are installed. Uninstall the webcontrols and install the version shipped on the MCMS 2002 server CD.

  7. Ensure that the user doing the import is a MCMS administrator.

  8. If the MCMS server and SQL server are installed on the same box ensure that shared memory protocol is disabled in the "SQL Client Network Utility". In addition move "named pipe" communication to the top.

  9. Ensure that the user listed in the ProcessModel section of the Machine.Config file has adequate rights (also read access to the SDO file).

  10. Ensure that the SQL Server machine has enough per seat licenses configured.

  11. Check if a web.config and/or global.asax file exist in the root of your web site. Invalid entries in these files might cause this error. Please remove them and test if this solves the problem. If you need these files for other applications, please check all entries and correct the errors.


Timeout when importing or exporting an SDO file.

February 13, 2003

Topic

I'm seeing a timeout when importing or exporting SDO files. Other error messages I have seen in this context are "The handle is invalid.", "General network error" and "The Underlying Connection Was Closed".

Answer

  1. It is better to use the server side APIs instead of client-side API because you are not subjected to problems associated with going through a web server. The server-side API is a COM API that directly talks to the MCMS server COM object.

  2. When importing large SDOs through Site Manager or the client-side API, you may run into the problem of the ASP.NET process timing out before the process is complete. To extend the various timeout parameters:

    1. On the MCMS server, open the machine.config file located in %windir%\Microsoft.Net\Framework\v1.0.3705\CONFIG.

      In the <processModel> tag set responseDeadlockInterval from "00:03:00" to "12:00:00" (12 hours timeout for any aspnet_wp process).

    2. On the MCMS server, open the web.config file located in <MCMS Dir>\server\mcms\sitedeployment.

      In the <httpRuntime> tag:

      set executionTimeout to "43200" (12 hours timeout for this application)

    3. If you plan to import a big SDO file, using the Site Manager or the client-side API, configure the following, on the MCMS server machine. This web.config setting controls upload size:

      In the tag:

      set maxRequestLength = "...", 1024 = 1 Mb, 102400 = 100 Mb. If the SDO is 3Mb in size then use 4096 as the value (4096k > 3 Mb, 4096 = 4 x 1024).

    4. You may run into the error that the aspnet_wp process uses more than 60% (default) of the system memory at which ASPNET kills the process. This default can be changed by editing the machine.config file at %windir%\Microsoft.Net\Framework\v1.0.3705\CONFIG.

      In the <processModel> tag:

      set memoryLimit="" “80” = 80% and is a good figure for me.

    5. If the MCMS server is running on the same system as the SQL server (i.e. the MCMS server is a local “client” of Microsoft SQL Server™):

      Adjust the SQL Client Network settings as follows (this is accessible through the “Microsoft SQL Server\Client Network Utility” Start Menu item:

      - turn off: “Enable shared memory protocol”
      - switch the order of the “Enabled protocols by order” so that “Named Pipes” comes before “TCP/IP”
      - restart Microsoft Internet Information Server (IIS)

      This cures some “General network error” problems that some have been seeing and some problems with imports failing right when the merge happens.

      This also cures problems of the form:

      Description = "Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding."
      Source = ".Net SqlClient Data Provider"

      Note: This error occurs regardless of the size of the DB.

    6. The export initially produces a huge folder in the \server\temp that gets compressed into a smaller SDO file.

      Make sure that this temp directory has enough space to contain this folder and the two copies of the file that will be produced (this is explained later). This is hard to estimate but a 500,000 posting MCMS db generates a 253 Mb file which, when uncompressed, consumes about 2Gb. After the file is produced in the temp directory it is moved to the rdonlyres directory where it gets downloaded to the client that performed the export. Make sure that there is room on the server for the copy to succeed (from temp to rdonlyres) and there is room for the client to hold the downloaded SDO file.

      A rule of thumb for exporting/importing a huge SDO file would be: = 20 x + 2 x = 22 x . I’ve seen cases where 50x the size of the SDO file must be allocated.

    7. Sometimes during a large export the Site Manager will timeout, reporting some error in reposturl.cpp. The export is still happening on the server side and eventually the SDO file will be produced in the /nr/rdonlyres directory.

    8. In IIS the virtual /NR directory must have anonymous access enabled. The physical file folder (located at MCMS install dir\Server\IIS_NR) requires read permissions for 'Everyone'.


Site Manager

Site Manager is the name for the Microsoft® Content Management Server (MCMS) Windows client. This application was previously known as the 'Microsoft Site Builder', 'Desktop Client'. 'Win32 Client', or 'Fat Client'.

In MCMS 2002, the purpose of the Site Manager is directly related to site administration. For this reason, there are no longer any authoring features within the Site Manager. In fact, an MCMS user with just authoring rights will not be able to log into the Site Manager applicati

"Use channel script with pages" option not persisted

Cannot logon to Site Manager with SSL

Dependent Report not working

Error Message: "An unexpected error has occured" after installing Windows Server 2003 SP 1

Error message: "Could not connect to the Microsoft Content Management Server localhost:80"

Error message: "Invalid server id."

Error message: "Key is not unique in collection"

Error message: "Microsoft Content Management Server 2002 installation not found" when installing SP1

Error Message: "No mapping between account names and security IDs was done."

Error message: "Run-time error '91' - Object variable or With block variable not set"

Error message: "SQL Server does not exist or access denied"

Error message: "The Microsoft Content Management Server proxy component is not correctly installed"

Error message: "The object invoked has disconnected from its clients"

Error message: "The system cannot find the file specified"

Error message: "Token too Large for current BLOB SIZE"

Error when uploading files to the resource gallery

How do I define a channel rendering script which takes parameters?

Navigation URL

New objects added in SiteManager get renamed to "Untitled"

Problems with SiteManager after installing Windows XP Service Pack 2

Request too big on channel with many postings

Site Manager shows up in tabbed view rather than full screen

Site Manager: xxxxxx is not a valid user or group in domain

Valid users cannot logon to Site Manager on Windows XP


"Use channel script with pages" option not persisted

October 28, 2005

Topic

When I try to set the "Use channel script with Pages" setting in Site Manager to "Yes" the change is not persisted. After a refresh the setting has been changed back to "No". What can cause such a problem?

Answer

This can happen if the System Locale on the Site Manager machine is not set to "US-English". Windows Scripting Host uses the System Locale when it genrates the textual representations for "True" and "False". In case the System Locale is set to "Italien" (e.g.) "True" will then be written as "Vero". As Site Manager uses the output from Windows Script when it sends the response to the server "Vero" is send for this setting rather than "True".

As the MCMS server does not expect this response it sets the value to the default value which means that this option remains deactivated.

To resolve this problem please change the System Locale on the Site Manager machine to "US-english".


Cannot logon to Site Manager with SSL

March 21, 2003

Topic

I cannot logon to Site Manager, when SSL is enabled. I get a script error instead.

Answer

Please check if the content expiration settings in Microsoft Internet Information Server (IIS) are set to "expire immediately". This can cause this problem.


Dependent Report not working

November 15, 2004

Topic

The "Dependent Report" function in site manager, does not work on my system. Nothing happens - means the Internet Explorer window that should show the report does not open. How can this be solved?

Answer

This can happen if a popup blocker is installed in Internet Explorer. Please disable the popup blocker. This should solve the problem.


Error Message: "An unexpected error has occured" after installing Windows Server 2003 SP 1

October 14, 2005

Topic

Since we installed Windows Server 2003 Service Pack 1 when opening a property dialog in Site Manager I receive the following error message:

"An unexpected error has occured. Please record and report details to the appropriate administrator."

There are no further details on this error dialog. How can I resolve this problem?

Answer

This can happen when the Data Execution Protection feature (new with Windows Server 2003 SP1 and Windows XP SP2) is enabled.

You would need to add NRClient.exe to the exclude list and to solve this problem.

You will find the option to enable/disable this option or to modify the exception list using the following steps:

Go My Computer – Properties – Advanced tab – Performance Settings button – Data Execution Tab.


Error message: "Could not connect to the Microsoft Content Management Server localhost:80"

March 17, 2003

Topic

I get the following error message when I try to connect to my MCMS web server using Site Manager:

Could not connect to the Microsoft Content Management Server localhost:80. Either the web service is not running, or there are network problems that are keeping you from connecting to the server, or the server is not accessible through MCMS Site Manager.

Answer

Here are some things to investigate:

  1. Check if your MCMS entry is configured to port 80. If not you need to adjust the port number in the parameter string of your Site Manager shortcut.
  2. Check if there is a global.asa in the root of your Web site. This global.asa contain errors or settings which interact with MCMS. MCMS does not ship with its own global.asa.
  3. If you are using the version of Site Manager that ships with CMS 2002 SP1a (or the web download) ensure that the J# redistributable package is installed on the box.
  4. Ensure that the web site is configured as Read-Write and not as Read-Only entry point in the SCA.
  5. Try to access http://localhost:80/NR/System/ClientUI/login.asp from Microsoft Internet Explorer and see if you get an error from Microsoft Internet Information Server (IIS). If so, put a test (very simple one; e.g. just say “hello world”) ASP page in \Server\IIS_NR\System\ClientUI\ and try to access it from Microsoft Internet Explorer. If that test page gives the same error, work on the issue as a regular IIS access problem. Then try to open Site Manager again.
  6. Ensure by checking in IIS MMC if the web site has an application name in the Web site properties.


Error message: "Invalid server id."

September 20, 2004

Topic

When starting Site Manager we receive the following error message:

Error: 0
Description: Invalid server id.
Severity: 5
Source: N/A
Debug info: N/A
Extra info: N/A
Client Source: Login::ctlLogin_Click
Recommended Action: N/A

What could cause this problem?

Answer

There are two known reasons:

  1. The Site Manager version is different from the Server version (e.g. Site Manager from SP1 and MCMS server on SP1a)
  2. The user running Site Manager does not have access to this registry key: HKLM/Software/NCompass


Error message: "Key is not unique in collection"

July 31, 2003

Topic

We have a problem when opening the rights property screen for a resource gallery item. We get the following error:

Error: 0
Description: Key is not unique in collection
Severity: 5
Source: ListItems
Debug info: N/A
Extra info: N/A
Client Source: UserRightsList::displayRightsList
Recommended Action: N/A

The event viewer shows this warning:

Event Type: Warning
Event Source: MCMS
Event Category: None
Event ID: 2403
Date: 7/22/2003
Time: 2:06:58 PM
User: N/A
Computer: --------
Description:
Offending SQL:
INSERT INTO NodeRole (IsBeingDeleted, IsBeingUpdated, IsBeingInserted, NodeId, RoleGUID) VALUES (?, 0, ?, ?, ?); INSERT INTO NodeRole (IsBeingDeleted, IsBeingUpdated, IsBeingInserted, NodeId, RoleGUID) VALUES (?, 0, ?, ?, ?); INSERT INTO NodeRole (IsBeingDeleted, IsBeingUpdated, IsBeingInserted, NodeId, RoleGUID) VALUES (?, 0, ?, ?, ?); INSERT INTO NodeRole (IsBeingDeleted, IsBeingUpdated, IsBeingInserted, NodeId, RoleGUID) VALUES (?, 0, ?, ?, ?); INSERT INTO NodeRole (IsBeingDeleted, IsBeingUpd;Violation of PRIMARY KEY constraint 'PK_NodeRole'.
Cannot insert duplicate key in object 'NodeRole'.

Answer

Open one of the User Rights Groups property pages and open the "Group Members" tab.
If you click Modify, you get the screen which lists the domains to select users from.

By selecting the relevant domain and clicking "synchronize", any changes you've made (such as new groups) are synchronized with Site Manager. This needs to be done on all affected Site Manager machines.

If the problem still persists, restart the box after the synchronization.


Error message: "Microsoft Content Management Server 2002 installation not found" when installing SP1

August 13, 2003

Topic

I have a machine where only the downloadable version of Site Manager (Site Manager Refresh) is installed. When trying to install MCMS 2002 Service Pack 1, I get the following error message: "Microsoft Content Management Server 2002 installation not found. The patching process will exit."

How do I install SP1 on a Site Manager Refresh box?

Answer

Follow these steps:

  1. Uninstall Site Manager Refresh.
  2. Follow the instructions in the section of the SP1 readme about "Installing Site Manager or Site Stager Without Microsoft VM" to install the RTM version of Site Manager (it won't run but this does not matter as it will be replaced with the version from SP1 in the next step).
  3. Run SP1 setup.


Error Message: "No mapping between account names and security IDs was done."

October 28, 2005

Topic

When I tried to add a new user to a rights group using MCMS 2002 Standard Edition I received the following error message: "No mapping between account names and security IDs was done."

Answer

Check and remove all accounts listed in all rights group in MCMS which are listed as Type "Unknown". MCMS is not able to idenitfy that this specific account is an user or a group.


Error message: "Run-time error '91' - Object variable or With block variable not set"

May 18, 2006

Topic

It tried to do a change in Site Manager and received the following error "Run-time error '91' - Object variable or With block variable not set". What could be wrong?

Answer

This can happen if there are any problems on SQL server - e.g. if the Transaction log is full. Please verify if there are any error in the event log on SQL server.


Error message: "SQL Server does not exist or access denied"

April 26, 2005

Topic

I have configured my SQL server connection with named-pipe protocol and SQL authentication. When I now try to start Site Manager I get the following error message:

The List of domains is not available due to the following error: SQL Server does not exist or access denied. ConnectionOpen (Connect()). Invalid connection string attribute.

When I reconfigure the SQL client to use TCP/IP everything works fine. Only named-pipes seem to be affected. What can I do to resolve this?

Answer

In Windows Server 2003 anonymous access for named pipes is disabled per default. This means the SQL server will only accept authenticated named-pipe connections. On the client side the MCMS server is running in the context of the MCMS system account. So it is required that the MCMS system account can be validated on the SQL server machine.

If the SQL server machine is in a different domain or if the machines are in a workgroup environment, then the SQL server is not able to validate the MCMS system account and the named-pipe connection cannot be established.

As a solution either use a domain account as MCMS system account that can be authenticated on both machines or create a local account with identical name and password on the SQL server machine. This will ensure that the SQL server can map the MCMS system account from the MCMS server machine to the idenical named local account on the SQL server machine.


Error message: "The Microsoft Content Management Server proxy component is not correctly installed"

June 12, 2003

Topic

When I run Site Manager on my machine, this is what I see:

“The Microsoft Content Management Server proxy component is not correctly installed.”

When I click the details button, I get this:

Error: File or assembly name vjslibcw, or one of its dependencies, was not found.
Source: Login::ctlLogin_Click

Answer

This error can happen when the J# redistributable for the latest installed .NET framework version is not installed on the box. For example if .NET framework 2.0 has been installed on the box but the J# redistributable for .NET 2.0 has not been installed.

Another reason might be a incorrectly installed J# redistributable. Please install/reinstall the J# redistributable for all .NET framework versions installed on the affected box.

The J# redistributables can be downloaded from the following location: http://msdn.microsoft.com/vjsharp/downloads/howtoget/default.aspx


Error message: "The object invoked has disconnected from its clients"

April 8, 2005

Topic

When modifying a rights group in the Site Manager I get the following error message.

Error: 0
Description: Automation Error: The object invoked has disconnected from its clients
Severity: 5
Source: AdmnTool
Client Source: OEFUsers::HandlePropDlg

How can I resolve this problem?

Answer

This can happen when the Data Execution Protection feature (new with Windows Server 2003 SP1 and Windows XP SP2) is enabled.

You would need to add NRClient.exe to the exclude list and to solve this problem.

You will find the option to enable/disable this option or to modify the exception list using the following steps:

Go My Computer – Properties – Advanced tab – Performance Settings button – Data Execution Tab.


Error message: "The system cannot find the file specified"

March 25, 2003

Topic

I'm getting the following error message when I try to logon to Site Manager:

Error:               6001
Description:         The system cannot find the file specified.
Severity:            5
Source:              aesecurityclient.dll reposturl.cpp 191
Debug info:
Extra info:
Client Source:       Login::ctlLogin_Click
Recommended Action:

Answer

This error message indicates a problem with your Internet Explorer installation. Please reinstall Internet Explorer 6 SP1.


Error message: "Token too Large for current BLOB SIZE"

February 9, 2003

Topic

I see this error when I login to Site Manager: "Token too Large for current BLOB SIZE".

Event log:

Error: 0
Description: Token that will be generated is too large for current BLOB SIZE.
Severity: 5
Source: N/A
Debug info: N/A
Extra info: N/A
Client Source: Login::ctlLogin_Click
Recommended Action: N/A

Answer

This is a known bug. A fix for this is scheduled for MCMS 2002 SP1.

A workaround to bypass this problem is to not use the login as current user option. Manually login to Site Manager using your username, domain and password.


Error when uploading files to the resource gallery

April 7, 2005

Topic

We are not able to upload new resource gallery items to the resource gallery using Web Author or using Site Manager.

In Web Author we get the following error message: "Object reference not set to an instance of an object."

In SiteManager we get the followng error message:

Error description: (0x80020009)
Extended error: [What='The system cannot find the path specified.(3)'] [LCID='1033']
[SourceFile='javascript:void(null);']
[SourceFileLine='187'] [DebugInfo='javascript:void(null);']
[RecommendedAction=""] [Extralinfo=''] [UniqueErrorId='5001'] [Severity='5'] [Source='']
[CategoryId='0']

What can cause this problem?

Answer

The error message details indicate a problem with the path in the following registry key:

HKLM\SOFTWARE\NCompass\Resolution Content Server\Configuration\ResolutionTempFolder

This key is either pointing to a non-existing location or the permissions on this directory have been tightend.

The required permissions on the folder where this registry is pointing to are as follows:

  • Administrators group (FULL)
  • CMSSystem (FULL)
  • Everyone (FULL)
  • System (FULL)


How do I define a channel rendering script which takes parameters?

February 14, 2003

Topic

I would like to define a channel rendering script that take parameters. But Site Manager rejects URLs in the format: <b>redirect.aspx?url=/section2/AnotherItem</b>.

Answer

This is a known issue with the script URL field in the channel rendering dialog box. But there is a workaround. You can create a custom channel property which can hold the parameters.

In the channel rendering script you need to extract these parameters using

string param = CmsHttpContext.Current.Channel.CustomProperties["RedirParams"]


Navigation URL

November 13, 2002

Topic

I'm confused about the Channel Rendering options. There’s a Script URL setting, which I’m sure is for the channel rendering script. But there’s also a Navigation URL setting what is this for?

Answer

The Navigation URL is a deprecated property. It is retained in MCMS 2002 only so that MCMS 2001 sites that used “framed navigation templates” could be migrated to MCMS 2002. Any new channel (or channels that are upgraded to ASP.NET) do not need to use this property.


New objects added in SiteManager get renamed to "Untitled"

October 29, 2003

Topic

I'm running MCMS 2002 SP1 and have encountered problems when creating (channels/resources) in Site Manager. The object loses it's properties when created.

The name defaults to "Untitled", custom properties disappear and other properties that I set for the object return to their defaults.

The loss of properties don't show in Site Manager unless you refresh the object but if I make edits using the web author the properties are saved.

Is there a solution for this problem?

Answer

This problem can occur when the SQL server settings do not allow nested triggers (triggers fired by other triggers).

To change this

  • right click on the SQL server in Enterprise Manager and choose properties
  • Open the "Server Settings" tab
  • Ensure that the "Allow triggers to be fired which fire other triggers (nested triggers)" is enabled.


Problems with SiteManager after installing Windows XP Service Pack 2

March 23, 2004

Topic

I have installed Windows XP Service Pack 2. When I now start Site Manager I receive the following error message:

Error: 20076
Description: The client is unable to connect to the server because the client's version is incompatible with the server's version. Please make sure your client is connecting to a server with a compatible version.
Severity: 5
Source: Source: AEStubObject.dll aestub.cpp 605

Debug info: The client Version 5.0 (build 5.0.4484.0) currently is not compatible with the server Unknown (build Unknown)
Extra info: No further information is available
Client Source: Login::ctlLogin_Click
Recommended Action: Please make sure your client is connecting to a server with a compatible version.

In addition the event log shows the following error messages:

Event Type: Error
Event Source: DCOM
Event Category: None
Event ID: 10016
Date: 23/03/2004
Time: 5:35:40 PM
User: machinename\IUSR_machinename
Computer: machinename
Description:
The machine-default permission settings do not grant Local Activation permission for the COM Server application with CLSID {0040D22F-54A1-11D1-9DE0-006097042D69}
to the user machinename\IUSR_machinename SID (S-1-5-21-1715567821-1580818891-854245398-1005). This security permission can be modified using the Component Services administrative tool.

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

What is wrong?

Answer

Windows XP Service Pack 2 changes some security settings to increase security for your system. One of these increased settings interacts with the way MCMS works in a way that it prevents a COM component from being activated.

To resolve this you need to apply the following changes:

Open Component Services, drill down to My Computer, right click and select Properties.

On the COM security tab, select Edit Default... for Launch and Activation permissions

Give the Internet Guest User Account (IUSR_...) Launch and Local Activation permissions.


Request too big on channel with many postings

February 8, 2003

Topic

Clicking on a channel which contains many postings (hundreds) I get the following error message:

    Error: Extended error: [What='The XML parser could not parse the tag it was given.'] [LCID='1033'] [SourceFile='aegrammarparser.cpp'] [SourceFileLine='310'] [DebugInfo='Request is too big'] [RecommendedAction=''] [ExtraInfo=''] [UniqueErrorId='1002'] [Severity='5'] [Source='GrammarParserC.dll'] [CategoryId='0'] Source: AeCliCmn::refreshTreeBranch

Answer

Site Manger code contains a limit of 100KB for every request. But you can change this limit. Change the constant or remove the check from this file: \program files\microsoft content management server\server\iis_nr\system\marshalling\resstub.asp

Modify or remove these lines:

    if nCount > 100000 then
       Response.Write "Request is too big"
       Response.End
    End if

If this problem occurs while starting Site Manager, also check the deleted items folder. A huge amount of items in this folder can cause the same problem.


Site Manager shows up in tabbed view rather than full screen

May 19, 2005

Topic

In Site Manager the right most pane is not in full size but appears in tabbed view with three tabs labeled as Tab1, Tab2 and Tab3. What can cause this problem?

Answer

This can happen if a wrong version of the vsocx6.ocx file is registered on your system.

Please search for all instances of this file on your disk (most likely it will be in c:\windows\system32).

To solve this problem

  1. Unregister the wrongly registered vcocx6.ocx by opening a CMD prompt, and
    run

    REGSVR32 /u C:\WINDOWS\system32\Vsocx6.ocx

    (adjust the path as necessary)
  2. Rename C:\WINDOWS\system32\vsocx6.ocx to C:\WINDOWS\system32\vsocx6.xxx

    (adjust the path as necessary)
  3. See if C:\Program Files\Microsoft Content Management Server\Client\vsocx6.ocx exists
    • If it does, open a CMD prompt and run

      REGSVR32 C:\Program Files\Microsoft Content Management Server\Client\vsocx6.ocx

      Now start Site Manager again and check if the problem is solved.
    • If the file does not exist, uninstall SM and reinstall.
      Verify that the file is installed and correctly registered and run Site Manager to see if the problem is resolved.


Site Manager: xxxxxx is not a valid user or group in domain

February 8, 2003

Topic

Error: xxxxxx is not a valid user or group in domain WinNT://xxxxxxxx when adding users in Site Manager.

Answer

The MCMS System Account has to be able to enumerate the members of the domains you are adding. So if you want to add DOMAIN\USER to your administrator group, for example, your MCMS System Account user has to be the member of a domain that DOMAIN trusts (ideally a member of DOMAIN itself).

You can change your system account using the Server Configuration Application (SCA). You can also add supported domains in the SCA.


Valid users cannot logon to Site Manager on Windows XP

February 9, 2003

Topic

Valid users cannot logon to Site Manager on Windows XP.

Answer

This is due to a security Option in the Local Security Settings:

"Network access: Sharing and security model for local accounts" was set to "Guest only - local users authenticate as Guest" instead of "Classic - local users authenticate as themselves.
Change the local security setting "Network access: Sharing and security model for local accounts" of the Windows XP machine to "Classic - local users authenticate as themselves"

To correct this setting:

  1. Open the MMC using "Start" - "Run..." - "MMC.EXE"
  2. Open the "Add/Remove Snap-in" dialog using "File..." - "Add/Remove Snap-in"
  3. Click "Add..." on the "Add/Remove Snap-in" dialog
  4. Select "Group Policy" in the "Add standalone Snap-in" dialog and click the "Add" button
  5. Click the "Finish" button in the "Select Group Policy Object" dialog
  6. Click the "Close" button on the "Add standalone Snap-in" dialog
  7. Click the "OK" button on the "Add/Remove Snap-in" dialog
  8. Expand "Local Computer Policy"
  9. Expand "Computer Configuration"
  10. Expand "Windows Settings"
  11. Expand "Security Settings"
  12. Expand "Local Policy"
  13. Click on "Security Options"
  14. In the right pane change the option "Network access: Sharing and security model for local accounts" to "Classic - local users authenticate as themselves"


Site Stager

Topics pertaining to the Microsoft® Content Management Server (MCMS) 2002 Site Stager Utility are discussed here.

The Site Stager application can be used to create a static HTML version of an ASP MCMS site. This practise is not recommended since the MCMS API is no longer accessible after the site have been staged.

Changing the value of the Site Stager maximum broken links

Why do I get so many broken links when staging my site in Site Stager?


Changing the value of the Site Stager maximum broken links

February 19, 2003

Topic

How can I change the value of the maximum broken links when I run the Site Stager?

Answer

This can be changed in the registry:

[HKLM]\SOFTWARE\NCompass\Staging Server\MaxBrokenLinks: STRING

(Maximum broken allowed when staging, create manually, default = 10)

Note: make sure that you backup your registry before you make any changes.


Why do I get so many broken links when staging my site in Site Stager?

February 19, 2003

Topic

Why do I get so many broken links when staging my site in Site Stager?

Answer

If you want to troubleshoot why you are getting broken links do the following:

  1. Open the Site Stager log and find a broken link to a posting. There are three URLs in the error message: GUID based URL of where link was found, GUID based URL of what Site Stager was requesting, and Hierarchical URL of what Site Stager was requesting.
  2. Open a Web browser and log into the MCMS site with the 'StageAsUser' account.
  3. Paste the GUID based URL into the browser. A lot of times you will see that you will get a script error or some other 500 error, that might give you some insight into what is going on.
Another way of doing the above, is to find a posting that is getting a broken link error message.
  1. Log into the Site Manager with the using the 'StageAsUser' account.
  2. Navigate to this posting, and preview it.
  3. Hit Ctrl-N to open the same previewed posting in a new browser. This will open a new window with the address bar visible.
  4. Change NRMODE=UnPublished to NRMODE=Staging.
This will also show you what is going on.

What we have also noticed is that after SRP1 has been installed, Subscriber only 'StageAsUser' account cannot stage the site. There is no fix for this, the workaround is make the 'StageAsUser' a Template Designer (or Administrator).


Visual Studio .NET

Accessing a MCMS Web site different from the Default Web site

Application for project type .csproj is not installed

Developertools.xml not found

Error Message: "Cannot MCMS-enable a project that is on a remote computer"

Error message: "Could not get the root template gallery"

Error message: "This operation requires the context of a Posting"

RobotMetaTag

Virtual directory "CMS" cannot be created

Visual Studio .NET 2003 and .NET Framework 1.1 support

Visual Studio .NET 2003 not recognized

Visual Studio .NET hangs on project creation


Accessing a MCMS Web site different from the Default Web site

February 9, 2003

Topic

How can I configure Microsoft® Visual Studio® .NET to access a MCMS Web site that is different from the Default Web Site?

Answer

First of all: Microsoft officially only supports the Default Web site to be used with VS.NET and the MCMS developer tools. But there is a method to get it working for different Web sites.

It is required that the Web site you are trying to access has a unique port. No other Web site (independend if started or not) must have the same port number.

In addition you need to modify the 'InstanceID' in your DeveloperTools.xml file located at C:\Program Files\Microsoft Content Management Server\DevTools. This number should correspond with the entry point of your Web site in Internet Service Manager.

<CMSENVIRONMENT>
  <SERVER BaseUrl="http://localhost" InstanceId="1" />
  <TEMPLATE QueryString="" />
</CMSENVIRONMENT>
To determine this number have a look in the registry. There is a key for every entry point below
\HKLM\SOFTWARE\NCompass\Resolution Content Server\Configuration\0\EntryPoints.

Also ensure that the MCMS Web site has a unique port that is not being used by any other Web site. The MCMS developer tools will try to create necessary virtual directories on the first Web site with the given port and ignore the 'InstanceId'. This also happens if the other Web site is stopped.


Application for project type .csproj is not installed

March 28, 2003

Topic

After installing the WoodgroveNet sample (which installed successfully), I attempted to open the project in Visual Studio. I was told that 'The application for project http://localhost/woodgrovenet/woodgrovenet.csproj is not installed. Make sure the application for the project type (.csproj) is installed.'

I click OK and get 'The application for project 'C:\Program Files\ Microsoft Content management
Server\Sample Data\McmsWebControlLibrary\McmsWebControlLibrary.csproj' is installed. Make sure the application for the project type (.csproj) is installed.'

What's the problem here?

Answer

Please check if you installed C# support when you installed Visual Studio .NET. You may have just installed VB.NET support.


Developertools.xml not found

March 1, 2004

Topic

Whenever I start Microsoft® Visual Studio® .NET 2003 I receive the following error message: "Developertools.xml not found".

Answer

This can happen when 3rd party Microsoft Visual Studio .NET add-ins are installed.

To confirm whether the problem is caused by one of these, deactivate all 3rd party add-ins.


Error Message: "Cannot MCMS-enable a project that is on a remote computer"

July 19, 2004

Topic

I am using Content Management server 2002 (SP1a installed) with Visual Studio .NET. While creating a new MCMS Web project I receive the following error message: "The 'New MCMS server project' operation failed because the following preconditions were not met: - Cannot MCMS-enable a project that is on a remote computer".

How can I solve this?

Answer

This can happen if you did not use a Url with the host name "localhost" when creating the project. The developer tools are only supported with the default web site running on port 80.

Different web sites and ports can be used - although not officially supported - if the port is unique.

To use a different Web site than the default web site you need to modify the 'InstanceID' in your DeveloperTools.xml file located at C:\Program Files\Microsoft Content Management Server\DevTools. This number should correspond with the entry point of your Web site in Internet Service Manager.

<CMSENVIRONMENT>
<SERVER BaseUrl="http://localhost" InstanceId="1" />
<TEMPLATE QueryString="" />
</CMSENVIRONMENT>

To determine this number have a look in the registry. There is a key for every entry point below:
\HKLM\SOFTWARE\NCompass\Resolution Content Server\Configuration\0\EntryPoints.


Error message: "Could not get the root template gallery"

February 9, 2003

Topic

Error when using MCMS Template Explorer: "Could not get the root template gallery".

Answer

Here are some things to consider:

  1. The Web application is not located on the local Microsoft Visual Studio® .NET server. The developer tools can only access the local MCMS server.
  2. The user running Microsoft Visual Studio .NET is not in a Template Designer role or their role does not have access to the root template gallery.
  3. Check the details of the error message text for further hints. E.g. it can contain the message 'The CMS Server license has expired'. If this happens for a non-eval edition of MCMS then this indicates a problem when reading the registry. This can be caused by permission problem when accessing the registry. Please check the permissions on the \HTKLM\Software\NCompass registry key.
  4. On Windows Server 2003 or with Windows 2000 SP4 ensure that the user running Visual Studio .NET has the "Impersonate a client after authentication" privilege.


Error message: "This operation requires the context of a Posting"

October 7, 2003

Topic

I am trying to follow the "Using Visual Studio .NET to Create a MCMS Web Site" article from the MCMS help file. When I test the site I receive the following error:

This operation requires the context of a Posting. The request must have a valid Posting Url or QueryString so that the CmsHttpContext.Posting will not be null.

Answer

MCMS template files cannot be executed on their own. They need to be executed in the context of a posting (as indicated in the error message).

To create a posting, login and then browse to the channel you want to create a posting. You should see a "Switch To Edit Site" link on the cover page. After clicking this link you will find a "Create New Page" link. This will allow you to pick the template from the template gallery and create a new posting based on this template.


RobotMetaTag

October 9, 2002

Topic

What is the MCMS 'RobotMetaTag' and why should I add it to my template?

Answer

The RobotMetaTag does the following two things:

  • Renders a META tag specifying the robot directives (INDEX, FOLLOW, NOINDEX, or NOFOLLOW) matching the settings in the page properties dialog for the posting.
  • Renders a BASE tag with an href that is the entire path and querystring for the template ASPX file. This causes Microsoft Internet Explorer to resolve relative links based on the template file’s virtual location instead of the perceived address in the browser address bar (which changes between edit and live mode). This behavior can be turned off by adding the “RenderBaseHref=False” to the RobotMetaTag server control tag, but the index and follow meta tags are always printed out, even when the RenderBaseHref is turned off.

It is not necessary if both of the following are true:

  • You have no need for robot meta tag directives.
  • You have no links to images or script files which have a source specified as a link relative to the template file (e.g. a file in your Microsoft Visual Studio® .NET project). This also applies, to links pointing to named anchors within the page (e.g. #faq).


Virtual directory "CMS" cannot be created

October 16, 2003

Topic

I have created a new Visual Studio .NET project and I am trying to enable it as a MCMS project. I am getting this error:

---------------------------
Microsoft Development Environment
---------------------------
Could not create virtual directory 'http://localhost/project/CMS' in location C:\Program Files\Microsoft Content Management Server\Server\IIS_CMS\.
---------------------------

What could cause this problem?

Answer

Here are some things to investigate:

  1. Ensure that the project path in Visual Studio .NET to the Web site is http://localhost/projectname (not http://localhost/projectname/). No other name is supported since only local Web sites can be enabled as MCMS projects.
  2. Ensure that the Web site you are using has a unique port. This includes Web sites that are stopped.
  3. Ensure that the DeveloperTools.xml has the correct port and 'InstanceId' for the Web site configured.


Visual Studio .NET 2003 and .NET Framework 1.1 support

May 22, 2003

Topic

I tried using MCMS 2002 with Microsoft Visual Studio® .NET 2003 and .NET Framework 1.1 but ran into errors.

Answer

MCMS 2002 RTM does not support Microsoft Visual Studio .NET 2003 and/or .NET Framework 1.1.

Support for Microsoft Visual Studio .NET 2003 and .NET Framework 1.1 is added with MCMS 2002 Service Pack 1.

To install MCMS 2002 with Visual Studio .NET 2003 follow the hints below:

  • install MCMS 2002 Server component only (no Developer Tools, no Site Manager, no Site Stager)
  • install MCMS 2002 Service Pack 1

MCMS 2002 SP1 will give you the option to install updated versions of Site Manager, Site Stager and the Developer Tools.


Visual Studio .NET hangs on project creation

March 24, 2005

Topic

When I try to create a new MCMS template project in Microsoft® Visual Studio® .NET project Microsoft Visual Studio .NET (DEVENV.EXE process) hangs indefinitely.

What might cause this?

Answer

This can happen when Microsoft Visual Studio .NET Analyzer is turned on under Administrative Tools, Data Sources (ODBC), Tracing

Alternatively you can check if the following registry key is set to 1 in the current user profile:

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC]
"Vista"="1"

To resolve this stop Microsoft Visual Studio .NET Analyzer using the button in Administrative Tools, Data Sources (ODBC), Tracing tab.

Alternatively you can resolve it by setting the above registry key value to “0”


Web Author

The 'Web Author' is thin client authoring environment used by Microsoft® Content Management Server (MCMS). This feature was previously known as the 'Web Browser Client' or the 'Thin Client'.

"400 Bad Request" when switching to live mode

"Switch to Edit Mode" link is not visible on the channel cover page

401 when creating a new page in Webauthor

403.1 when creating a new page in Webauthor

Alternative for HtmlPlaceholderControl

Authentication prompt when trying to access the server by name and not by IP

BaseAction ActionJavaScript

Change token

CmsAuthorizationModule missing in web.config

Creating internal anchors

Error message about missing reference to "Microsoft.Web.UI.WebControls"

Error message: "'1' is not a valid identifier."

Error message: "A potentially dangerous Request.Form value was detected from the client"

Error message: "File or assembly name &lt;name&gt;.dll, or one of its dependencies, was not found."

Error message: "Invalid Mode for Update" when saving new page

Error message: "Object doesn't support this property or method" when saving new posting

Error message: "Specified cast is not valid" when opening a page

Error message: "The module 'CmsAuthorizationModule' is already in the application and cannot be added again"

Error message: "The page cannot be displayed - Cannot find server or DNS Error"

Error message: "The user does not have sufficient right to view the page." when clicking "Edit Hyperlink"

Error message: "The View State is invalid for this page and might be corrupted"

Error message: "Type mismatch: Initialize Toolbar"

Error message: "Write access denied. The user does not have sufficient rights to perform the requested action."

Error when uploading files to the resource gallery

Exception in "ConvertUtc2Local"

Extreme document load time

Forcing the download of ActiveX controls

How can I pre-select a template when creating a new page?

IFRAME causes Javascript Error with Permission Denied

Incorrect size and position of windows

Is it possible to pre-install the ActiveX controls for the Web Author?

Line Breaks in the HtmlPlaceholderControl

Multiple Instances of the HtmlPlaceholderControl Toolbar

Page is refreshed when trying to save new page.

Placeholder content is lost when saving or doing preview

Problem uploading big files

Script error when switching to edit mode or when saving a posting.

Setting the spell check language in Web Author

Supported Browsers for the Web Author

Template Gallery resources reference "/CMS/CMS/..."

Toolbar button "Edit Source" grayed out

Tree view refreshes without postback

Treeview broken in the Web Author

Ugly URL after postback

Ugly URL when switching from edit to live mode

Users not authenticated with Standard Edition

View state error when changing application pool of template application

Warning: "Are you sure you want to navigate away from this page?"


"400 Bad Request" when switching to live mode

November 9, 2005

Topic

We experience problems when switching from edit mode to live mode. In the browser a "Page cannot be displayed" error shows up and in the IIS log a 400 bad request is listed.

This only happens if we use a http module to do a redirect to the friendly URL when being in published mode.

How can we correct the problem?

Answer

To resolve this you need to increase the UploadReadAheadSize in the metabase. The default value is 48 KB.

To increase the UploadReadAheadSize to 512 KB use the following command:

cscript.exe adsutil.vbs SET /W3SVC/UploadReadAheadSize 512000

Usually the adsutil.vbs file can be found following location: c:\inetpub\AdminScripts


"Switch to Edit Mode" link is not visible on the channel cover page

June 5, 2003

Topic

I have tried to create new postings in my channels but the cover page does not contain the "Switch to Edit Mode" link. What's wrong?

Answer

Here are some things to consider:

  1. Ensure that you are authenticated. The "Switch to Edit Mode" link will only occur for authenticated users with at least Author rights.
  2. If you have WoodgroveNet installed then you may be seeing the 'Homeport' instead of the default cover page. This page does not contain the "Switch to Edit Mode" link. To correct this do the following:

    1. Open Site Manager
    2. right-click the channel and select "Properties"
    3. open the "Publishing" tab
    4. click the "Select..." button in the "Channel Rendering" section
    5. Clear the "Script URL" entry field
    6. Click "OK" to close the "Select Channel Rendering" dialog
    7. Click "OK" to close the Channel Properties dialog


401 when creating a new page in Webauthor

June 23, 2004

Topic

When I try to create a new posting I receive authentication prompts asking for credentials. This happens after I successfully selected the template from the template gallery. Whatever credentials I enter they are not accepted.

In the Internet Information Server (IIS) log I can see a 401 for "/NR/exeres/..."

What could be causing this problem?

Answer

This can happen if the ASPNET account (IIS 5) or the account assigned to the IIS application pool running the MCMS application (IIS 6) does not have the 'SeImpersonatePriviledge'.

Usually, this happens if MCMS is installed after SP4 on Windows 2000 or if the application pool account is set to a non standard account.

On Windows 2000 domain controllers with .NET Framework 1.1 the default account is not the ASPNET account but the IWAM_<machinename> account. So this priviledge needs to be assigned to the IWAM_<machinename> account.

A solution regarding how to assign this priviledge is provided in the MCMS 2002 SP1 Readme file.


403.1 when creating a new page in Webauthor

July 20, 2004

Topic

I tried to create a new page using one of my templates. After selecting the template in Web Author, I immediatelly received a "HTTP 403.1 Forbidden: Execute Access Forbidden" error. How can I resolve this?

Answer

This can happen when the TemplateFile property of the Template Definition in MCMS does not point to a valid template file. Please double check that the path stored in this property is pointing to a valid Template File.


Alternative for HtmlPlaceholderControl

February 9, 2003

Topic

Is there a version of the HTML placeholder control shipped with MCMS 2002 which allows HTML editing with other editors?

Answer

A 3rd party product often referenced is the Ektron HTML/XML Editor: http://www.ektron.com/mscms.cfm.

Check the MCMS partner page for more MCMS partners.


Authentication prompt when trying to access the server by name and not by IP

April 5, 2005

Topic

I have a running MCMS site on http://localhost/Intranet using Windows integrated authentication. It also works when I request http://127.0.0.1/Intranet and http://192.168.0.xxx/Intranet. But strangely, when I put host name mapping in C:\WINDOWS\System32\drivers\ect\hosts like:

127.0.0.1 intranet

I suddenly get a dialog requiring me to authenticate, when I request http://intranet/Intranet. Using Microsoft® Internet Explorer 6, every attempt to authenticate with that dialog fails.

My ultimate goal is to have the intranet host header to map on the /Intranet MCMS channel, this is not a problem, but I really want to be able to log in (at all, but preferably automatically).

I'm using MCMS 2002 on a WinXP Pro machine. What can be done to resolve this problem?

Answer

This can happen in certain situations if Internet Explorer tries to use Kerberos authentication. See the following article on how to resolve this:

294382 - Authentication may fail with "401.3" Error if Web site's "Host Header" differs from server's NetBIOS name


BaseAction ActionJavaScript

March 4, 2004

Topic

I'm trying to develop an Edit Console control to launch a new window. I inherited from the BaseNewWindow control, but it keeps telling me I didn't implement ActionJavaScript.Get. However, no where in the class structure does it stipulate MustInheirt. When I do overload the property (ActionJavascript), I now have to supply the javascript code. Not a big deal, but it virtually eliminates any benefit of inheriting from the base class.

Answer

ActionJavascript is defined as: public abstract string ActionJavascript { get; }
It is on the BaseAction class, which is a parent class of BaseNewWindow. The "abstract" modifier on the method in C# is equivalent to "MustOverride" for VB.NET. The "MustInheirt" VB.NET modifier is for classes, equivalent to the "abstract" modified for classes in C#.
So the class structure does mandate that any sub-class of BaseNewWindowAction must implement ActionJavascript get. Generating some javascript to launch a window is the primary use case of a "NewWindow" action.


Change token

November 13, 2002

Topic

When I tried to change the expiry date on a page I saw this error:

Microsoft Content Management Server

Error has occurred

Invalid change token. The current object data does not match the data associated with the given change token.

Answer

The change token is used to detect collision. The error you saw typically occurs if the content or the properties of the page has been changed by another person. Generally this is before you save your changes, but after you launched the Page Properties dialog.

One known issue is that you may have a stale cached version of the dialog. The solution is to ensure that the Microsoft® Internet Explorer option for "TemporaryInternetFiles > Settings... > CheckForNewVersionOfAPage" is not set to "Never". "Automatic" is the default setting and will avoid caching these dialog pages.


CmsAuthorizationModule missing in web.config

October 9, 2003

Topic

When saving a page I get the following error message in the error console:

Save Placeholder Failed
-----------------------------------------------------------
Error Details:
The current user does not have rights to edit the requested item. If you are seeing this exception when a MCMS template is executing, it means that you have removed the CmsAuthorizationModule from the HttpModules section of your web.config. You can only remove this module if: 1. All requests for every MCMS template in the web application will only be accessed by anonymous users 2. Guest access is enabled in MCMS (via the SCA) 3. The MCMS guest user has access to all postings based on templates in the web application If any of these requirements are not met, you MUST register the CmsAuthorizationModule in your web.config.
-----------------------------------------------------------

I checked my web.config files and the CmsAuthorizationModule is listed there. What could be the problem?

Answer

Although the error message indicates a missing authorization item in the web.config file, this is not the case. The error actually occurs when the editor is saving a page and is validating the contents of the placeholders and the template. If any invalid resources are referenced, the above "Save Placeholder Failed" error appears.

Typical scenarios for invalid resources include:

  • A resource is added to the resource gallery, and a link to the resource is successfully added to a posting. Later the resource is deleted. When the page is next edited, the link to the now missing resource is invalid.
  • An editor adds a link to a resource stored in a resource gallery. Then the editor's access rights to the gallery are removed. Next time when editing the page, the editor would get the above error, because the link would appear invalid.
  • The author has only subscriber rights to the template gallery but not editor rights.

How to recognize invalid links?

In order to find out which link is invalid, the editor must go to the page in live mode, and click each of the links. If the link is valid, it works. If the link is not valid, either a "Page can not be displayed" error message is displayed (or the system will ask for username and password - as in error 2 above). It is also possible to write a script to crawl your MCMS pages looking for broken links.

Why can the administrator save the page on behalf of the editor?

When a resource is deleted from the resource gallery, the physical item is still in the database. However, it is no longer associated with a resource gallery. As resources are accessed with a GUID based link, the access to the item is possible but it is no longer possible to access the information about which users are allowed. This information is stored in the resource gallery. But as the item no longer belongs to a resource gallery the currently user cannot be verified. MCMS Administrators on the other hand, have access to all items. This means that no access check is done. This means that administrators also have access to deleted items which have not yet been removed from the database (during background processing). Therefore, when an administrator saves a posting, the placeholder content seems valid, and the save is successful. This is true as long as the resource has not been deleted from the database by background processing.

What must the author do when getting this error?

The editor cannot easily check for invalid links in edit mode, therefore it is best to open the page in another window and click each of the links. Once an invalid link is detected, he must go back to the edit page and remove the link.


Creating internal anchors

November 4, 2002

Topic

I want to create an internal anchor link inside my page. How do I do this?

Answer

Here is an example of how to do it in an HTML placeholder.

Step One: Create the internal anchor point

1. click inside the placeholder and select some text

2. click the 'Edit Hyperlink' icon on the Microsoft® Internet Explorer toolbar

3. under the 'Define as Internal Anchor Point' section, enter the name in the 'Name' box (e.g. name)

Step Two: Create the internal link

1. click inside the placeholder and select some text

2. click the 'Edit Hyperlink' icon on the Microsoft Internet Explorer toolbar

3. in the 'Hyperlink Address' box enter the name with a '#' sign before it (e.g. #name)


Error message about missing reference to "Microsoft.Web.UI.WebControls"

September 6, 2004

Topic

When I select "Create New Page" from the console, I get the following error:

Compiler Error Message: CS0011: Referenced class 'Microsoft.ContentManagement.WebAuthor.BaseTree' has base class or interface 'Microsoft.Web.UI.WebControls.TreeView' defined in an assembly that is not referenced. You must add a reference to assembly 'Microsoft.Web.UI.WebControls'.

Any ideas on what's wrong?

Answer

Ensure that in the assemblies section in the web.config file the following entry exists:

<add assembly="Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />


Error message: "'1' is not a valid identifier."

March 18, 2003

Topic

I get the following error message when I try to create a new posting based on one of my templates:

Server Error in '/TestTemplate' Application.

Parser Error
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.
Parser Error Message: '1' is not a valid identifier.
Source Error:
Line ...: <FORM id="1" method="post" runat="server"></FORM>

Answer

The name in the form tag is the same name as your template file. You must not name your template with a number (without preceding the number with a letter).


Error message: "A potentially dangerous Request.Form value was detected from the client"

May 15, 2003

Topic

I get "A potentially dangerous Request.Form value was detected from the client" when saving a new page. What's going wrong?

Answer

The reason for this is that the Web Author posts HTML data to the server. HTML data posted to a Web server can potentially contain dangerous content. The .NET Framework 1.1 checks for this case. But the .NET framework does not know that MCMS expects the Web Author to send such content. This causes the error.

You need add the tag validateRequest="false" to your web.config. This will disable the check:

<configuration>
  <system.web>
    <pages validateRequest="false" />
  </system.web>
</configuration>

For more details refer to the ASP.Net Web site.

If you don't like the idea to enable this for the whole web application, then you can also set this value to false in the web.config and only disable request validation on the templates that contain HtmlPlaceholderControls using the following page directive:

<%@ Page validateRequest="false" ...>


Error message: "File or assembly name &lt;name&gt;.dll, or one of its dependencies, was not found."

October 22, 2003

Topic

I am seeing this error message "File or assembly name <name>.dll, or one of its dependencies, was not found. (<name> is random)".

Error ID:      -2147352567
Source File:
Source Method: NRSiteDeployServer
Description:   File or assembly name ifdy1rnx.dll, or one of its dependencies, was not found.

What could be wrong?

Answer

Here are some things to consider:

  1. This error can occur if the ASPNET account doesn't have permission to write to the WinNT\Temp (system temporary) directory.
  2. This error can also happen if you run an MCMS application compiled for .NET framework 1.1 on .NET framework 1.0


Error message: "Invalid Mode for Update" when saving new page

May 12, 2003

Topic

When I try to save a new page, I see this error message:

Save new Page failed.
Error Details: Invalid Mode for Update. The requested action modifies the state of an object and can only be performed when the session is in 'Update' mode.

Answer

Here are some things to consider:

  1. Check if the template is in the root of the Web site. It should be in a separate web application.
    You should not create a template project with http://localhost but with http://localhost/application
    If you create a template project in the root then the web.config file and global.asax reside here: http://localhost/web.config
    This will mean that this web.config will interact with the web.config in the /MCMS directory (http://localhost/MCMS/web.config)
  2. Ensure that the template is not named "Default.ASPX".


Error message: "Object doesn't support this property or method" when saving new posting

March 17, 2003

Topic

I have a problem creating a new page in the Web Author. After putting in the page name and clicking "OK" I get the following javascript error: "Object doesn't support this property or method" and the new page dialog window does not close.

What could cause this?

Answer

This can happen if a <FORM> tag is included in the template. ASP.NET automatically adds a <FORM> tag to ASPX pages. Pages can only contain one <FORM> tag.

Right click on the page in authoring mode and click "View Source". Search in the source code for "<FORM". If there is more than one tag, you will need to remove the extra ones.


Error message: "Specified cast is not valid" when opening a page

February 9, 2003

Topic

Error Message: "Specified cast is not valid" when opening a page in the Web Author. The page contains custom placeholder controls (e.g. DropDownPlaceholderControl).

Answer

This is a problem with the Viewstate data and a dynamically changing control tree.

When there are postbacks between different modes (which there are for a ReEdit event but not for a NewPage event), there can be issues with repopulating the viewstate. When this happens, exceptions like this can occur.

In the beta release I believe that ViewState may have been unavailable for all controls inside mode containers. When we allowed viewstate to work again, there were occasionally some issues like this. I believe this is a situation that can arise in a postback to any ASP.NET page where the control tree is significantly different from the source page for the postback, perhaps due to programmatic and conditional population of the control tree like this situation requires.

If the embedded control only needs access to the postback data itself and its viewstate is not required for your control, then you may be able to work around the problem by adding the following line:

this.controlname.EnableViewState = False

The following article explains this problem in detail:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskAddingControlsToWebFormsPageProgrammatically.asp

Abstract:

However, view state information about dynamically created controls can be a problem in two scenarios:

  • If you insert dynamic controls between existing controls.
  • If you insert controls dynamically and then reinsert them during a round trip, but with different values.

If you insert dynamic controls between existing controls, the dynamic control's view state information is inserted into the corresponding location of the view state structure. When the page is posted and the view state is loaded, the dynamic control does not yet exist; therefore, the extra information in view state does not correspond to the right control. The result is usually an error indicating an invalid cast.


Error message: "The module 'CmsAuthorizationModule' is already in the application and cannot be added again"

June 12, 2003

Topic

I get the following error message:

Parser Error Message: The module 'CmsAuthorizationModule' already in the application and cannot be added again

What might cause this problem?

Answer

This problem is being caused by a web.config located in the root of your website. You should create an MCMS application in the root of a Web site. Please either remove this web.config file or remove the duplicate keys which interact with your template application web.config file.


Error message: "The page cannot be displayed - Cannot find server or DNS Error"

February 10, 2004

Topic

When authoring my site I sometimes receive the standard Internet Explorer error page with the following message:

The page cannot be displayed

Cannot find server or DNS Error
Internet Explorer

Answer

This is a known problem with Internet Explorer when doing POST requests to a site using Windows authentication. You need to install the following hotfix on every affected authoring machine:

821814 - You Receive a "Page Cannot Be Displayed" Error Message When You Post to a Site That Requires Authentication

Note: the following newer fix implements the same fix in a different way and requires an additional registry key. Please see the "More Information" section for details:

831167 - Wininet retries POST requests with a blank header


Error message: "The user does not have sufficient right to view the page." when clicking "Edit Hyperlink"

June 6, 2003

Topic

Sometimes when I click the "Edit Hyperlink" button on the Toolbar I receive the following error message: "The user does not have sufficient right to view the page."

Answer

This has been identified as a problem in Internet Explorer.

One workaround for this is to remove anonymous access permissions from the following file in the IIS MMC:

\<templateproject>\CMS\WebAuthor\Dialogs\HLink\HLink.aspx


Error message: "The View State is invalid for this page and might be corrupted"

March 21, 2003

Topic

I get the following error message for some of my postings. These postings include a user control which stores values in a database:

"The View State is invalid for this page and might be corrupted."

Answer

This is a problem with the Viewstate data and a dynamically changing control tree.

When there are postbacks between different modes (which there are for a ReEdit event but not for a NewPage event), there can be issues with repopulating the viewstate. When this happens, exceptions like this can occur.

In the beta release I believe that ViewState may have been unavailable for all controls inside mode containers. When we allowed viewstate to work again, there were occasionally some issues like this. I believe this is a situation that can arise in a postback to any ASP.NET page where the control tree is significantly different from the source page for the postback, perhaps due to programmatic and conditional population of the control tree like this situation requires.

If the embedded control only needs access to the postback data itself and its viewstate is not required for your control, then you may be able to work around the problem by adding the following line:

this.controlname.EnableViewState = False

The following article explains this problem in detail:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskAddingControlsToWebFormsPageProgrammatically.asp

Abstract:

However, view state information about dynamically created controls can be a problem in two scenarios:

  • If you insert dynamic controls between existing controls.
  • If you insert controls dynamically and then reinsert them during a round trip, but with different values.

If you insert dynamic controls between existing controls, the dynamic control's view state information is inserted into the corresponding location of the view state structure. When the page is posted and the view state is loaded, the dynamic control does not yet exist; therefore, the extra information in view state does not correspond to the right control. The result is usually an error indicating an invalid cast.


Error message: "Type mismatch: Initialize Toolbar"

July 7, 2003

Topic

When I enter Web Author edit mode, I receive the following error message:

Error : Type mismatch: "Initialize Toolbar"

Answer

This problem is discussed in knowledge base article 811932.


Error message: "Write access denied. The user does not have sufficient rights to perform the requested action."

October 22, 2004

Topic

When our web authors throughout the company try to edit pages within MCMS, they are able to edit the page normally. However, they are unable to save any changes. Every time they try to save a page the following exception occurs:

Error: Error in Page Update using ROM

Description: Write access denied. The user does not have sufficient rights to perform the requested action.

Answer

This can happen when the user saving the page does not have rights to images or attachments embedded in one of the placeholders.

This can happen if the site way migrated from MCMS 2001 where such rights checks for resource gallery items did not exist or if the page was originally created by a user with more rights than the current user.


Exception in "ConvertUtc2Local"

January 9, 2004

Topic

I'm running an MCMS Web site on two different servers. Presentation mode works fine on both boxes but on one box some actions in unpublished mode cause the following exception:

[NullReferenceException: Object reference not set to an instance of an object.]
Microsoft.ContentManagement.WebAuthor.DialogBase.ConvertUtc2Local(DateTime dtUtc) +61
Microsoft.ContentManagement.WebAuthor.StandardProperties.LoadDateTime(DateTime dtUtc, TextBox tbxDate, Calendar calendar, TextBox tbxTime) +54
Microsoft.ContentManagement.WebAuthor.StandardProperties.LoadPublishingDates() +83
Microsoft.ContentManagement.WebAuthor.StandardProperties.Page_Load(Object sender, EventArgs e) +192
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Control.LoadRecursive() +98
System.Web.UI.Control.LoadRecursive() +98
System.Web.UI.Control.LoadRecursive() +98
System.Web.UI.Page.ProcessRequestMain() +731

Answer

The reason for this problem is explained in the following KB article:

http://support.microsoft.com/?id=316112.

PRB: Session Variables Do Not Persist Between Requests After You Install Internet Explorer Security Patch MS01-055


Extreme document load time

October 10, 2003

Topic

While editing a page in the MCMS Web Author, I receive the following message in a popup:

Extreme document load time

The document is in the state of resolving links. While this is occurring the document may not be fully available for retrieval.

During this process some portions of the document may not be available. If this operation continues some items may be lost.

Do you wish to wait up to two (2) minutes for the document to complete?

Answer

This is not a message produced by MCMS but by the Ektron Placeholder control. Please contact Ektron (www.ektron.com) for details.


Forcing the download of ActiveX controls

August 12, 2003

Topic

After installing MCMS SP1, some of my Authors and Editors are no longer able to edit the pages using the Web Author. I assume this is a problem with the Microsoft ActiveX® controls. Is it possible to delete them and force a fresh download from the MCMS server?

Answer

Yes, you can force the controls to be downloaded. Follow these steps:

  • Open Internet Explorer
  • Click Tools and then click Internet Option
  • Select the General tab
  • In the Temporary Internet files section click Settings
  • Click View Objects
  • Delete "MCMS Html Editor" and "Microsoft MCMS Html Editor Toolbar"
  • Close all Internet Explorer instances


How can I pre-select a template when creating a new page?

February 13, 2003

Topic

How can I pre-select a template when creating a new page?

Answer

You need to redirect to the following destination. This will open the Web Author with the template of your choice and the page will be saved in the channel of your choice:

WebAuthorContext.Current.GetUrlForMode(Posting,WebAuthorContextMode.AuthoringReedit)


IFRAME causes Javascript Error with Permission Denied

May 15, 2003

Topic

I've created a simple MCMS 2002 template containing an IFRAME (and the default console). When I view a posting based on this template, everything is fine until I switch to authoring mode. I then get a Javascript 'permission denied' error.
I set the visible property of the IFRAME (adding runat=server) so that it was only visible in Published mode. I no longer get the error when I switch to edit mode, but when I switch back to the live site, I still get the error (the page comes from the /NR/exeres/ cache).
Can someone explain why this error occurs, and the correct way to use IFRAMEs in a MCMS 2002 template without causing Javascript errors?

Answer

This is a small bug in the coding of Console.js. It causes a cross-site-scripting issue in framed sites. When switching between presentation and authoring mode, the Web Author tries to change the mode of all other frames.

This causes cross-site-scripting errors when the other frames do not belong to the same site.
This should also cause trouble in a framed site when the other frames contain content from other sites.
To solve this you have to add some code to the Console.js file located at the following location:
\Program Files\Microsoft Content Management Server\Server\IIS_CMS\WebAuthor\Client\Console.js
Change the code so that it looks like this:

function UpdateSiblingFramesInPublishedMode()
{
   for (i=0; i < window.top.frames.length; i++)
   {
      if (window.top.frames[i] != window)
      {
         // refresh it with Published mode URL
         try
         {
            window.top.frames[i].location.href =
                  GetUrlModePublished( window.top.frames[i].location.href );
         }
         catch(e)
         {}
      }
   }
}
...
function UpdateSiblingFramesInUnpublishedMode()
{
   for (i=0; i < window.top.frames.length; i++)
   {
      if (window.top.frames[i] != window)
      {
         // refresh it with Unpublished mode URL
         try
         {
            window.top.frames[i].location.href =
                  GetUrlModeUnpublished( window.top.frames[i].location.href );
         }
         catch(e)
         {}
      }
   }
}


Incorrect size and position of windows

October 10, 2003

Topic

In Web Author when a new window opens (e.g. Resource Manager) the positioning and size of the window causes the lower right edge of the window to be out of the screen. How can this be corrected?

Answer

To solve this this issue you need to modify some lines of code in the following file:

\Program Files\Microsoft Content Management Server\Server\IIS_CMS\WebAuthor\Client\Windows.js

The following code:

function WBC_UseDefaultSizing(pWindow)
{
    var lWidth = WBC_getWindowWidth(pWindow);
    var lHeight = WBC_getWindowHeight(pWindow);
...

needs to be changed to

function WBC_UseDefaultSizing(pWindow)
{
    var lWidth = WBC_getWindowWidth(pWindow)-2*IDS_WIDTH_OFFSET;
    var lHeight = WBC_getWindowHeight(pWindow)-2*IDS_HEIGHT_OFFSET;
...


Is it possible to pre-install the ActiveX controls for the Web Author?

February 9, 2003

Topic

A customer is restricting Microsoft ActiveX® downloads in browsers and wants to pre-install the Microsoft ActiveX controls necessary for the Web Author. How can this be done?

Answer

The customer needs to register the two classes contained in the following cab file:

c:\Program Files\Microsoft Content Management Server\Server\IIS_CMS\WebAuthor\Client\PlaceholderControlSupport\nrdhtml.cab.

Registration is done using "REGSVR32 <filename>"

If the same machines are required to author on MCMS 2001 and MCMS 2002, install the Microsoft ActiveX® controls of MCMS 2002. They are compatible with MCMS 2001.


Line Breaks in the HtmlPlaceholderControl

March 12, 2003

Topic

Is it possible to change the HtmlPlaceholderControl so that the lines are not double spaced? I just want a new line when I press enter. As it is, I have to press shift enter to get a new line.

Answer

When you press ENTER a <p> tag is inserted which means a new section is started. When you press Shift-ENTER a <BR> tag is inserted which means a line-break in a section.

If the line spacing for sections does not meet your requirements just change the margin-top and margin-bottom style attributes of the <p> tag in your style sheet.

It is not possible to change the Microsoft ActiveX® control to insert <BR> instead of <P> when pressing Enter.

If you really want to change this behavior you could create a custom placeholder control derived from the original HtmlPlaceholderControl which overrides the SavePlaceholderContent method and exchanges <p> with <br>.


Multiple Instances of the HtmlPlaceholderControl Toolbar

February 25, 2005

Topic

I experience the problem that I sometimes the have multiple instances of the Toolbar for the HtmlPlaceholderControl in the browser. How can I prevent this?

Answer

This can happen if there are hidden HtmlPlaceholderControls (e.g. hidden SPAN or DIV tags which surround the HtmlPlaceholderControl). This will still create the Tool but as the ActiveX control holding the Editor Component is not available the Toolbar cannot be bound to the placeholder control and remains orphaned on the page.

To prevent this either hide the HtmlPlaceholderControl using client side Script:

<script language="javascript">
mydiv.style.visibility='Hidden';
mydiv.style.Display='None'
</script>

or remove the HtmlPlaceholderControl using server side script by adding logic to the placeholder which prevents the HtmlPlaceholderControl from being added.


Page is refreshed when trying to save new page.

December 20, 2004

Topic

We experience problems when trying to save a new page in MCMS 2002 Web author. After closing the save new page dialog a postback to the server happens but rather than saving the page and switching to unpublished mode the page just refreshes in update mode and the placeholders show up empty. In addition the page has not been created.

What can cause this behaviour?

Answer

This can happen if the SQL server collation for the database is set to case sensitive. This is not supported with MCMS 2002. Ensure that the SQL server collation for the MCMS database is set to case-insensitive.


Placeholder content is lost when saving or doing preview

April 25, 2003

Topic

When I preview a posting or when I save a new posting, the placeholder content is gone. What can cause this?

Answer

This can happen if a <FORM> tag is included in the template. ASP.NET automatically adds a <FORM> tag to ASPX pages. Pages can only contain one <FORM> tag.

Right click on the page in authoring mode and click "View Source". Search in the source code for "<FORM". If there is more than one tag, you will need to remove the extra ones.

Beside this you also have to ensure that the placeholder controls are located between the <FORM...> and the </FORM> tag.


Problem uploading big files

March 28, 2003

Topic

I'm trying to upload a file in the resource manager. The file is a bit large (about 5 MB). When I select the file, and press ok button an error page is displayed.

Answer

Please add or modify the following section in your web.config file to control the maximum upload size and time:

<httpRuntime executionTimeout="3600"
maxRequestLength="1024000"
 useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100"/>

In this example, the values are set to 3600 seconds=1 hour and 1024000 KB=1GB.


Script error when switching to edit mode or when saving a posting.

February 20, 2003

Topic

#1: When I click on the "Switch to Edit Site" link in the console nothing happens but a script error shows up.

#2: I get a "__CMS_PostBackForm is undefined" message when trying to create a new posting in the Web Author.

What can cause this error?

Answer

There are several possible reasons for this:

  1. Your Web application is missing the virtual directory "CMS". Ensure that this virtual directory exists and points to the IIS_CMS folder in the MCMS installation directory. Also ensure that it is just a virtual directory (not a web application).

  2. If your template is named Default.ASPX, rename your template to a different name.

  3. Ensure that the ID of the form inside the template aspx page (visisble in html view in Microsoft® Visual Studio® .NET) is not set to "default". Choose a different name.

  4. Check if there is a virtual directory with the same name as your channel. Invalid Metabase entries on this virtual directory might interact with MCMS and cause this error. To troubleshoot this, rename this virtual directory to a different name and check if the console works correctly. If it does, and you need the virtual directory with the same name, check which entries are causing the problem.

  5. Another reason for this can be if Whidbey and ASP.NET 2.0 are installed and the template project uses this version. MCMS 2002 is currently not compatible with ASP.NET 2.0


Setting the spell check language in Web Author

December 12, 2003

Topic

Spell checker in MCMS 2002 Web Author uses wrong language. How can I change this?

Answer

The spell checker is a component of Microsoft Word installed on the client machine. Please ensure that spell checking of this language works correct in Word. If this is ok, then check the value of the following registry key:
HKCU\Software\Microsoft\Office\10.0\Common\LanguageResources\InstallLanguage
(the version might differ)

Ensure that the correct language value is defined. Here are samples of the values for the most often used languages:

german
english
spanish
french
italian
dutch
swedish

407 (hex)
409 (hex)
40A (hex)
40C (hex)
410 (hex)
413 (hex)
41d (hex)

1031 (dec)
1033 (dec)
1034 (dec)
1036 (dec)
1040 (dec)
1043 (dec)
1053 (dec)

More languages can be found in KB 221435


Supported Browsers for the Web Author

February 8, 2003

Topic

Which browsers are supported by the MCMS 2002 Web Author?

Answer

Unlike MCMS 2001, there is no DHTML Version of Web Author available.

The Placeholder Controls shipped with MCMS 2002 require Microsoft Internet Explorer 5.x (also Microsoft Internet Explorer 5.01 with Windows Script 5.6) on Windows (Windows 9x and Microsoft Internet Explorer for the Mac are no longer supported).

This limitation not only belongs to the PlaceholderControls shipped with MCMS 2002. Also the dialogs are tailored for the above browser versions.


Template Gallery resources reference "/CMS/CMS/..."

May 6, 2003

Topic

When I select "create new page" in the Web Author console, I see the Template Gallery Window pop up but no images are being pulled down. The stylesheet is not being loaded and the Javascript files are not being pulled down. I viewed the source of this page and saw that there was an extra folder in the path to the resource files. The links looked like this: /CMS/CMS/WebAuthor/Client/WBC.css.

I had the same type of problem when I went into the resource gallery. What could be wrong?

Answer

The solution to this problem is that the virtual directory "CMS" in the template application is an application and not a virtual directory. You can tell the difference between the two by their appearance in the MMC. A virtual directory has a little world on top of a folder while an application has a grey box with a page in it and a green arrow.

To fix this:

  • Open the IIS_Admin MMC
  • Right click on the "CMS" Virtual Directory/Application item under the web root
  • Click properties on the virtual Directory tab and select "remove"
  • Click "OK"


Toolbar button "Edit Source" grayed out

January 12, 2004

Topic

I have this strange problem that in some (not all) of my templates when in edit mode I do not have the option to view the html source in my htmlplaceholders since the html edit source button is grayed out.

I checked that I have full formatting on the placeholder so this is not the problem what else can explain this?

Answer

This is not an option of the placeholder object but of the placeholder control object.

This option can be enabled/disabled using the "AllowHtmlSourceEditing" property of the
HtmlPlaceholderControl.

In VS.NET click on the placeholder control on your template and you will note the "AllowHtmlSourceEditing" in the behaviour section of the property windows.


Tree view refreshes without postback

November 9, 2004

Topic

If the list of resource galleries has exceeded the size of the window of the tree view control and the author has to scroll down to select and expand a tree node the following error occurs:
The resourcegallery is not expanded but the list jumps back to the first resourcegallery.
The same happens if more channels exist and a node in the hyperlink dialog needs to be expanded. The error only happens after a scroll down - not if no scroll down is required.
If the same node is expanded a second time the problem does not occur. Only for the initial page load. How can I avoid this problem?

Answer

To avoid this you need to update the treeview.htc file which is part of the IE WebControls:

treeview.htc, line 444:
...
try
{
var prevScrollTop = element.scrollTop;
var prevScrollLeft = element.scrollLeft;
// oItem.focus(); <--- this line needs to be commented out to avoid the problem.
element.scrollTop = prevScrollTop;
element.scrollLeft = prevScrollLeft;
}
catch (e)
...


Treeview broken in the Web Author

February 9, 2003

Topic

The dialog box used in the Web Author to link a piece of text to an internal link is missing the little '+' next to the channel names. This provides no means for the user to select a posting to link to. It only allows the selection of the root channel.

Answer

The resolution is to create a virtual web application named “webctrl_client” under the root of the MCMS Web site, and then map it to the “C:\Inetpub\wwwroot\webctrl_client” physical directory (this is the Default Web Site install directory). After you’ve done this, try the dialog again.


Ugly URL after postback

March 13, 2003

Topic

When I add a button to my template and click it, the URL line changes to the template instead of the nice posting URL. What's wrong?

Answer

This behavior is by design. What you can see is the true URL of the posting, which consists of a call to the template file with parameters identifying the posting. ASP.NET requires this URL to correctly process a posting. If a user enters the friendly URL in the browser the MCMS ISAPI filter silently replaces the friendly URL with the correct one. ASP.NET never knows about the MCMS internal URL, it creates postback links to the true URL.

Here is a workaround for this problem. Add the following code behind the <form...> tag in the template or add it to a User Web Control which you can add to all your templates:

<%@ Import Namespace="Microsoft.ContentManagement.Publishing" %>

<% if (WebAuthorContext.Current.Mode == WebAuthorContextMode.PresentationPublished) { %>
  <SCRIPT language=javascript>
  <!--
    __CMS_PostbackForm.action = '<% =CmsHttpContext.Current.Posting.Url %>';
  // -->
  </SCRIPT>
<% } %>


Ugly URL when switching from edit to live mode

February 9, 2003

Topic

When switching from Edit to Live mode the URL in the browser is still in an ugly format. Can this be changed?

Answer

1) Add the following code part to global.asax.cs of you template project:

    public void Application_PreRequestHandlerExecute(Object sender, EventArgs e)
    {
        //
        //  correct the url after switch to live
        //
        Posting thisPosting = CmsHttpContext.Current.Posting;
        PublishingMode currentMode = CmsHttpContext.Current.Mode;
        if (thisPosting != null && currentMode == PublishingMode.Published)
        {
            if ( Request.QueryString["NRORIGINALURL"] != null &&
                 Request.QueryString["NRORIGINALURL"].StartsWith("/NR/exeres") )
            {
                if ( !thisPosting.Url.StartsWith("/NR/exeres") )
                    Response.Redirect (thisPosting.Url);
            }
        }
    }

2) Wire up this event in the global init:

    this.PreRequestHandlerExecute +=
                 new EventHandler(this.Application_PreRequestHandlerExecute);

The complete implemetation looks like this:

    namespace ...
    {
        ///
        /// Summary description for Global.
        ///
        public class Global : System.Web.HttpApplication
        {
            public Global()
            {
                InitializeComponent();
                this.PreRequestHandlerExecute +=
                       new EventHandler(this.Application_PreRequestHandlerExecute);
            }

            public void Application_PreRequestHandlerExecute(Object sender,
                                                             EventArgs e)
            {
                //
                //  correct the url after switch to live mode
                //
                Posting thisPosting = CmsHttpContext.Current.Posting;
                PublishingMode currentMode = CmsHttpContext.Current.Mode;
                if (thisPosting != null && currentMode == PublishingMode.Published)
                {
                    if ( Request.QueryString["NRORIGINALURL"] != null &&
                         Request.QueryString["NRORIGINALURL"].StartsWith("/NR/exeres") )
                    {
                        Response.Redirect (thisPosting.Url);
                    }
                }
            }
            ...
        }
    }


Users not authenticated with Standard Edition

January 4, 2005

Topic

All requests to a site (MCMS 2002 Standard Edition) that is managed by MCMS and configured with windows authentication receives a 404 error. If a request is made to the application (root channel) then user will get a "Directorly listing denied" error 403.

Requests to non MCMS resources are resolving correctly, access to Site Manager is working as well as the SCA.

When doing a manual login into the Web site by accessing the Manuallogin.asp we are able to authenticate to the site and the site is working as expected.

This shows that the site is working but some part of the windows authentication is not working in the MCMS application.

What might cause the problem?

Answer

This can happen with MCMS 2002 Standard Edition if MCMS is not able to determine if a license violation has happened.

In the Standard Edition of MCMS there is a limit to the number of users that is allowed by the system and it is restricted to 15 Non Subscribers. NT/AD Groups are not allowed as members of nonsubscriber rights groups.

If MCMS is not able to identify if a member of a rights group is a user or a group you might experience the problem you have seen. Please enter SiteManager and have a look into all rights group and check if you find an entry where the type column is shown as <UNKNOWN>.

Remove all the affected entries and your site should start working again.

A known reason for the type to be <UNKNOWN> is that the domain is not accessable from the MCMS server machine (domain controller is down).


View state error when changing application pool of template application

November 4, 2004

Topic

After changing the application pool of my MCMS template application I receive an view state error. Is there any problem with doing this?

Answer

This can happen if the MCMS folders do not run in the same application pool as the Web site. See here for details about all the directories that have to run in the same applicaiton pool:

842429 - You receive a 403.18 error message when you run an MCMS application in a different application pool on IIS 6.0


Warning: "Are you sure you want to navigate away from this page?"

February 9, 2003

Topic

Clicking on a calendar control embedded in a template causes the following message: "Are you sure you want to navigate away from this page? Refreshing or leaving this page will loose all unsaved changes."

Answer

Some custom placeholder controls like the calendar control uses postbacks to the server when you click on it. This will cause this message to occur because the template assumes that you are leaving the page.

Another reason might be a client side reload being cause by (e.g.) a resize event. Some navigation controls use this to ensure that the rendering is done correct on the current window size.

For such situations you can use EnableLeaveAuthoringWarning = "false", a property of the console tag.


Woodgrove Sites

At this time there are five 'Woodgrove Bank' samples sites for Microsoft® Content Management Server (MCMS) 2002. Only the ASP.Net Internet site is on the MCMS 2002 CD. The other samples will be available on Microsoft MSDN®.

Woodgrove ASP.Net Internet C# (ships on the MCMS CD)
Woodgrove ASP.Net Internet VB
Woodgrove ASP.Net Intranet (Framed)
Woodgrove ASP.Net International (MLS)
Woodgrove ASP Internet

Available Woodgrove sample sites

Broken references

Credentials are not accepted when importing the Woodgrove sample site on Windows XP

Homeport instead of MCMS cover page

Left navigation highlight

Project error

Roll back when installing Woodgrove sample site

Tree Control Styles

Woodgove and CMS 2002 SP1a

Woodgrove Installation hangs

WoodgroveInternational sample site install does not import sample data


Available Woodgrove sample sites

March 10, 2003

Topic

On the MCMS 2002 CD there is an ASP.NET C# sample site called WoodgroveNet. Is there also a Visual Basic .NET or ASP version available?

Answer

WoodgroveNet Sample Site
This sample demonstrates how to use C# to build a site with Content Management Server 2002

http://download.microsoft.com/download/a/a/1/aa121cac-2a05-4602-8416-233e7b6779ca/WoodgroveNet.zip

This sample demonstrates how to use Visual Basic .NET to build a site with Microsoft Content Management Server 2002:
http://www.microsoft.com/downloads/details.aspx?familyid=d0bd546c-f2b2-4ed0-a209-54f3ee35322a

This sample demonstrates how to build a framed Intranet site with Microsoft Content Management Server 2002:
http://www.microsoft.com/downloads/details.aspx?familyid=56459d80-0d16-4275-895c-414ed5a9299b

This sample demonstrates three different ways to build a multilingual Web site using Microsoft Content Management Server 2002:
http://www.microsoft.com/downloads/details.aspx?familyid=19bf2542-b0d5-4866-9c73-2a52598c91dd

This sample demonstrates how to build a Microsoft Content Management Server 2002 Web site in ASP:
http://www.microsoft.com/downloads/details.aspx?familyid=a95973ab-8f56-4ddd-b0ab-092107ed1a85

Other samples: http://www.microsoft.com/cmserver/default.aspx?url=/cmserver/evaluation/samplesites


Broken references

October 18, 2002

Topic

I installed the Woodgrove Bank sample but my project won't compile in Microsoft® Visual Studio® .NET. After a little investigation, I found that the references on the MCMS DLLs are broken. How did this happen?

Answer

Microsoft Visual Studio .NET projects use an XML file to store the location of references. Generally the references can be found under "Program Files/Microsoft Content Management Server" but there are cases where this isn't true.

For example, on non-English systems there is no "Program Files" directory and therefore the references are broken.
To correct the references
1. In Microsoft Visual Studio .NET open the WoodgroveNet project.

2. In the Solution Explorer expand the References section.

3. Right click on any DLL whose reference is broken and select Delete on the popup menu.

4. Right Click on the References and select Add Reference...from the popup menu.

5. Select the Browse button in the Add References dialog box.

6. Browse to the MCMS installation folder and under that \Server\bin folder.

7. Select the DLL whose reference is to be added to the project, then select Open button.

8. In the Add Reference... dialog box, select OK.


Credentials are not accepted when importing the Woodgrove sample site on Windows XP

February 10, 2003

Topic

The credentials are not accepted when trying to import the Woodgrove sample site into the MCMS repository on Microsoft Windows XP.

Answer

This is a problem with the default Windows XP security policy.

Go to your Local Computer Policy, click Computer Configuration, then Windows Settings, then Security Settings, then Local Policy, then Security Options.

Change the "Network access: Sharing and security model for local accounts" setting to "Classic - local users authenticate as themselves".


Homeport instead of MCMS cover page

October 18, 2002

Topic

I created a new channel and navigated to it using http://localhost/channelname. All I get is an MCMS presentation page. There is no option to switch to edit mode.

Answer

The default setting (once you have installed the Woodgrove ASP.Net sample) is for the root channel to redirect to the MCMS Homeport page. You will need to edit your channel properties in the Site Manager.

To Modify your Channel Rendering property in Site Manager:

1. In Site Manager, click on Channels in the far left pane.

2. In the middle pane right click Channels then select Properties in the menu.

3. In the Publishing tab click the Select button in the Channel Rendering section.

4. Clear the Script URL entry. This will direct your browser to the MCMS cover page when the channel is empty.


Left navigation highlight

October 18, 2002

Topic

The left navigation console in WoodgroveNet (About Us) is constantly highlighted regardless of what page is currently being viewed. How can I change this?

Answer

This is an issue with the Microsoft® Internet Explorer Webcontrols 'Treeview' control. You can manually alter the TreeView.htc file to change this behavior. We did not make the change as it would affect all instances of the tree control on your machine.

You can find more information about the Treecontrol Webcontrol on Microsoft's Microsoft MSDN® Web site.


Project error

October 18, 2002

Topic

Why is it that if the sample site is installed to a directory that is different from the default, you get an error when opening the WoodgroveNet project in Microsoft® Visual Studio® .NET.

Answer

The Microsoft Visual Studio .NET solution for WoodgroveNet (woodgrovenet.sln) expects that the virtual directory created for WoodgroveNet be mapped to the default path for the MCMS install.

If your sample site was installed to any directory that is not the default, you must modify your virtual directories "Local Path" setting. You will also need to modify the path property for the MCMSWebControlLibrary.

To Modify your MCMS Sample Site virtual directory Settings:

  1. In the Microsoft Internet Information Server (IIS) snap-in, right click on WoodgroveNet.
  2. Select Properties in the menu
  3. In the Virtual Directory tab modify the Local Path setting so that it points to the path that you installed WoodgroveNet

To Modify the Path property for the MCMSWebControlLibrary Reference:

  1. Microsoft Visual Studio .NET open the WoodgroveNet project
  2. In the Solution Explorer expand the References section
  3. Right click on MCMSWebControlLibrary and select Delete from the popup menu
  4. Right click on References and select Add Reference from the popup menu
  5. Select the Browse button in the Add References dialog box
  6. Select \Sample Data\WoodgroveNet\bin\McmsWebControlLibrary.dll then select the Open button
  7. In the Add Reference dialog box, select OK


Tree Control Styles

January 23, 2004

Topic

How do you change the color of the navigation/treenode links? I have tried modifying every instance of the default woodgrove #336633 color and it has no effect. I have modified the .css file as well as the mcmsnavigationcontrol.cs file. I have even done a search and there are no more references to the #336633 color anywhere! Where is the web application pulling this color from? I want to be rid of this green woodgrove color, please help!

Answer

Woodgrove uses the IE Webcontrols tree control. It uses HTC files.

Look here for the readme: C:\Program Files\Microsoft Internet Explorer WebControls
snippet....
4. Create the following directories below the Root Web:
webctrl_client\1_0\
webctrl_client\1_0\images
webctrl_client\1_0\treeimages
webctrl_client\1_0\treeimages\rtl
5. Copy the HTC files (Behaviors) to the "webctrl_client\1_0\" folder
below the Root Web folder.
6. Copy the images to the following paths:
Images used by the WebControls: "webctrl_client\1_0\images"
Images for the TreeView: "webctrl_client\1_0\treeimages"
Right-to-left images for the TreeView:
"webctrl_client\1_0\treeimages\rtl"


Woodgove and CMS 2002 SP1a

January 9, 2004

Topic

Hi everyone, I have installed MCMS 2002 with SP1a. I have installed Content Server, Site Manager and Site Stager and every thing seems O.K. I would like to install the Woodgrove sample site. The Content Management Server 2002 Installation Guide says:

To install the WoodgroveNet sample site

  1. On the MCMS computer, insert the MCMS 2002 CD into the CD-ROM drive.
  2. On the Microsoft® Content Management Server splash screen, click Install Components, then click Install Sample Site.

But I don't have the option Install Sample Site. What am I missing?

Answer

MCMS 2002 SP1a does not ship with the Woodgroove sample site installation. You have two options:

1. Install the Woodgroove sample site from the MCMS 2002 RTM CD by running the following MSI package file:

\SampleSite\Microsoft Content Management Server Sample Data.msi

2. Download the sample from:

http://download.microsoft.com/download/a/a/1/aa121cac-2a05-4602-8416-233e7b6779ca/WoodgroveNet.zip


Woodgrove Installation hangs

March 24, 2005

Topic

When I try to to import the MCMS Sample Data Installation (WoodGroveNet) the installation process hangs indefinitely.

What might cause this?

Answer

This can happen when Microsoft Visual Studio .NET Analyzer is turned on under Administrative Tools, Data Sources (ODBC), Tracing

Alternatively you can check if the following registry key is set to 1 in the current user profile:

[HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC]
"Vista"="1"

To resolve this stop Microsoft Visual Studio .NET Analyzer using the button in Administrative Tools, Data Sources (ODBC), Tracing tab.

Alternatively you can resolve it by setting the above registry key value to “0”


WoodgroveInternational sample site install does not import sample data

July 7, 2003

Topic

I installed the WoodgroveInternational demo site, but cannot figure out where the sample data is. I expected to see something to allow me to import sample data into my MCMS repository, but the install was basically silent with few options. Am I missing something?

Answer

The data gets imported only if you start the installation by clicking Setup.Exe, not the *.msi file.


Workflow

Workflow has been improved in Microsoft® Content Management Server (MCMS) 2002. The new API event model allows MCMS developer to base their workflow off both the Web Author and the API. Questions about workflow are answered in this section.

Declined Posting does not get assigned back to the Author

Editor vs. Moderator

Posting goes offline when waiting for Moderator approval

What is the sequence of Workflow Events?

Workflow with empty Editor/Moderator groups


Declined Posting does not get assigned back to the Author

February 22, 2004

Topic

I have an issue in MCMS. I find that postings are locked to various users as they travels through the workflow. For example, when a request for approval is denied, the posting is not sent to the author it came from.

Here is a sample workflow:

  • An Author submits a page into the workflow and the Editor receives it
  • The Editor reviews it, decides that it is not correct and plans to send it back to the Author
  • However before the Editor sends it back to the Author the Editor makes some minor changes, this changes the page from "Author - Saved" to "Editor - Saved"
  • When the Editor declines back to the Author the page is still locked to the Editor as "Editor - Saved" and the Author cannot make any changes to the page as requested by the Editor

Any Help would be greatly appreciated.

Answer

This behavior is as expected. When the Editor changed the content he acted as an Author - not as an Editor. Then when he later declined it, he acted as an Editor. The decline action returns the posting to the last author - and this was the Editor himself.

To prevent this, the Editor must not do any changes before declining the posting. One option would be to remove the "Edit" link in the console for Editors. This would ensure that Editors cannot act as Authors.

To allow comments to be sent to the author, the following console extension can be used. It allows an Editor to add a comment when declining. This comment can be picked up by a workflow event and possibly sent to the Author by email.

The sample can be found here:
http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=88d0484d-d380-4ad7-ac6c-59c58f996601


Editor vs. Moderator

February 17, 2004

Topic

When I update a posting only editor approval is required and not moderator approval. Is this a bug?

Answer

No this is not a bug. Editors and Moderators approve different changes.

- Editors approve content changes
- Moderators approve property changes

So when a placeholder content gets changed only Editor approval is required. When a posting is moved then only Moderator approval is required.

If you need a 2-level workflow then either implement a 3rd party workflow engine like the workflow engine from Teamplate (www.teamplate.com) or force a property change when the posting is changed. This can be done using a workflow event.


Posting goes offline when waiting for Moderator approval

March 1, 2004

Topic

Whenever a posting state switches to "waiting for moderator approval" the page goes offline. This does not happen when the posting state switches to "waiting for editor approval". Why does this happen and how can I prevent this?

Answer

This is expected behavior in MCMS. Internally, MCMS uses two different objects: the page object and the posting object. Editors approve changes to the page object (which holds the placeholder content and the custom properties) while the Moderator approves changes to the posting object (which stores properties like the display name, the start and expiration date and the reference to the template being used by this page).

This concept of page/posting is used to implement connected postings. All connected postings use the same page object to share the content.

MCMS supports versioning for the page object but not for the posting object. So whenever the posting object requires approval, the posting changes to "waiting for moderator approval" and there is no longer a published version of the object available.

There are two workarounds to avoid this:

  1. use a staging environment (it usually does not affect anyone if the page goes offline in a staging environment)
  2. do not use moderators.


What is the sequence of Workflow Events?

March 10, 2003

Topic

When a new page is created, what is the sequence that the ASP.NET workflow events get fired?

Answer

  • Creating event fires
  • Changing event fires
  • Create action creates the posting, with the name set to the name of the template.
  • Created event fires
  • Changed event fires
  • PropertyChanging event fires
  • Changing event fires
  • PropertyChange action sets the name of the posting
  • PropertyChanged event fires
  • Changed event fires


Workflow with empty Editor/Moderator groups

October 13, 2003

Topic

I have assigned a rights Group (Editor or Moderator) to one of my channels. The rights group does not contain any users. When I now submit a new page the state switches to waiting for editor/moderator approval even though there is no editor or moderator available to do the approval. Is this expected?

Answer

Yes, this is expected behavior. MCMS only checks whether there are any rights groups from these user roles assigned to the channel. The server does not look to see whether that rights group contains any valid users. So even if a Editor or Moderator rights group has no AD users or groups assigned to it, the workflow state will still be set to an appropriate "waiting for approval" after a page has been submitted.

The reason for this behavior is that any channel with an Editor and/or Moderator rights group assigned is assumed, by definition, to require appropriate approvals on all pages posted there. The fact that there are no users explicitly assigned to the Editor and/or Moderator rights group in question does not eliminate the need for approval, therefore the pages must not skip the appropriate "waiting for approval" stages of the MCMS workflow.