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
When I browse to a posting, the page shows me the source code instead of rendering the content.
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
When I access an empty channel, MCMS pulls up the /NR/Shared/Cover.asp page. How do I modify this page?
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.
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)"
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
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?
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:
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?
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:
Is it possible to create an RSS feed for content syndication for my MCMS site?
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
namespace
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/
In the Application Event log, there are a bunch of pairs of warnings:
Warning 1)
Source: MCMSEvent ID: 2400Description: Connection 00A930C8 <[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'LayoutTemplateProperty'.> {State=42S02 NativeCode=208}
Warning 2)
Source: MCMSEvent ID: 2405Description: Offending SQL: SELECT * FROM LayoutTemplateProperty WHERE NodeId = ?; Invalid object name 'LayoutTemplateProperty'.
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.
Can MCMS be used accross different application pools in Internet Information Server (IIS) 6?
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 1Template application - Application Pool 1NR virtual directory - Application Pool 1
Result: MCMS works
All in their own application poolMCMS website - Application Pool 1Template application - Application Pool 2NR virtual directory - Application Pool 3
Result: Viewstate error
MCMS website in its own application poolMCMS website - Application Pool 2Template application - Application Pool 1NR virtual directory - Application Pool 1
Template application in its own application poolMCMS website - Application Pool 1Template application - Application Pool 2NR virtual directory - Application Pool 1
Result: 403 error
NR virtual directory in its own application poolMCMS website - Application Pool 1Template application - Application Pool 1NR virtual directory - Application Pool 2
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.
Is it possible to use MCMS 2002 on Windows Server 2003 Web Edition?
No. It is a licensing violation to use MCMS 2002 on Windows Server 2003 Web Edition.
Does MCMS run on Microsoft Windows Server™ 2003?
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.
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.
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.
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?
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.
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."
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 exactly is the difference between a Template Designer and a Channel Manager? I did not find any differences.
The primary differences between the Channel Manager and Template Designer role are related to possible administrative actions on templates.
What is the meaning of the MCMS performance counters?
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.
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.
These are hits on the nodes in the MCMS Master Node cache.
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.
Most likely since the start of the server.
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.
There are the available whitepapers and other documents for MCMS.
MCMS Whitepapers
MCMS 2001
MCMS 2002
Other documents and download locations
Training
WebCasts
Connector for SharePoint Technologies
KB-Articles
Whitepapers for related topics
MCMS and Sharepoint Integration
MSIB Content Connector for MCMS 2002 and Commerce Server
Community Links
(Outdated Links)
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.
© 2004 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.