MCMS 2002 FAQ





This is a collection of questions and answers about Microsoft® Content Management Server (MCMS) gathered from the MCMS newsgroup.











    Topic: Client certificate mapping


    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


     

    [Back to Top]



    Topic: Console disappears with Windows authentication


    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.


     

    [Back to Top]



    Topic: Delayed Web requests when MCMS server is disconnected from SQL Server


    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.

     


     

    [Back to Top]



    Topic: Deleted attachments


    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.


     

    [Back to Top]



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


    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


     

    [Back to Top]



    Topic: How to enable HTTP compression with MCMS


    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

     


     

    [Back to Top]



    Topic: Identifying MCMS patch level


    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


     

    [Back to Top]



    Topic: Mapping two different host-header names to the same channel


    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


     


     

    [Back to Top]



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


    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


     

    [Back to Top]



    Topic: How is the disk cache integrated with MCMS?


    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.


     

    [Back to Top]



    Topic: How is the Node Cache affected by database import?


    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.

     


     

    [Back to Top]



    Topic: MCMS 2002 Standard Edition for production and Enterprise Edition for authoring


    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.

     


     

    [Back to Top]



    Topic: Postings and channels with identical path


    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)


     

    [Back to Top]



    Topic: Server.Transfer vs. Response.Redirect


    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.


     

    [Back to Top]



    Topic: What are new improvements in MCMS 2002?


    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.

     


     

    [Back to Top]



    Topic: What language was used to create MCMS


    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


     

    [Back to Top]





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


    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" />


     

    [Back to Top]



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


    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".

     


     

    [Back to Top]



    Topic: An empty task list is displayed in the wizard


    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.

     


     

    [Back to Top]



    Topic: Changing publishing server


    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.


     

    [Back to Top]



    Topic: Document published using Authoring Connector looks different as in Word


    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.


     

    [Back to Top]



    Topic: Error message: "Requested Resource not found"


    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.

     


     

    [Back to Top]



    Topic: New publishing task not available in Authoring Connector


    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.

     


     

    [Back to Top]



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


    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.

     


     

    [Back to Top]



    Topic: Value cannot be null


    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


    [Back to Top]



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


    "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"

     


     

    [Back to Top]



    Topic: Affinity


    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.

     


     

    [Back to Top]



    Topic: Forms authentication keys not synchonized


    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


     

    [Back to Top]



    Topic: Credentials are not accepted in DCA on Windows XP


    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".


     

    [Back to Top]



    Topic: DCA log


    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


     

    [Back to Top]





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


    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.


     

    [Back to Top]



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


    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


     

    [Back to Top]



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


    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

     


     

    [Back to Top]



    Topic: Error message: "Invalid column name 'ID'"


    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.


     

    [Back to Top]



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


    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.


     

    [Back to Top]



    Topic: Error message: "Must Declare the varible @InsertedParentGuid"


    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.


     

    [Back to Top]



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


    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.


     

    [Back to Top]



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


    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.


     

    [Back to Top]



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


    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".


     


     

    [Back to Top]



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


    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".


     

    [Back to Top]



    Topic: GPF in DCA


    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


     

    [Back to Top]



    Topic: SQL Server database not available in the DCA


    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.


     

    [Back to Top]



    Topic: "Access denied" when accessing the site


    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.

     


     

    [Back to Top]



    Topic: 403 when browing the site


    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

     


     

    [Back to Top]



    Topic: COMException 0x80041b58


    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


     

    [Back to Top]



    Topic: DCA log


    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


     

    [Back to Top]



    Topic: Enabling TraceListener Support


    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.


     

    [Back to Top]



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


    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.

     


     

    [Back to Top]



    Topic: Error message: "Server Application Unavailable"


    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)


     

    [Back to Top]



    Topic: Incompatible placeholder type


    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.

     

     


     

    [Back to Top]



    Topic: Parser error


    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.


     

    [Back to Top]



    Topic: PlaceholderToBind Not Found


    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.


     

    [Back to Top]



    Topic: Template debugging in Microsoft Visual Studio .NET


    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.

     


     

    [Back to Top]



    Topic: Troubleshooting 500 server error


    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.


     


     

    [Back to Top]



    Topic: Wrong image version


    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.


     

    [Back to Top]



    Topic: ASP.NET not registered in IIS


    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


     

    [Back to Top]



    Topic: Cover.asp


    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.


     

    [Back to Top]



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


    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


     

    [Back to Top]



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


    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

     


     

    [Back to Top]



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


    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.

     


     

    [Back to Top]



    Topic: Implementing an RSS feed for a MCMS Web site


    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/


    [Back to Top]



    Topic: Invalid object name 'LayoutTemplateProperty'


    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.


     

    [Back to Top]



    Topic: MCMS and different application pools


    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.


     

    [Back to Top]



    Topic: MCMS and Windows Server 2003 Web Edition


    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.


     

    [Back to Top]



    Topic: MCMS on Windows Server 2003


    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.


     

    [Back to Top]



    Topic: Setting the start date of a posting to the past


    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.


     

    [Back to Top]



    Topic: Template switching in MCMS 2002


    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.


     

    [Back to Top]



    Topic: Virtual directory "CMS" not visible on Microsoft Windows XP


    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.


     

    [Back to Top]



    Topic: What is the difference between Template Designer and Channel Manager?


    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.

     


     

    [Back to Top]



    Topic: What is the meaning of the MCMS performance counters?


    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.


     


     

    [Back to Top]





    Topic: Can MCMS 2002 be installed in unattended mode?


    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.


     

    [Back to Top]



    Topic: Credentials are not accepted in DCA on Windows XP


    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".


     

    [Back to Top]



    Topic: DCA log


    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


     

    [Back to Top]



    Topic: Disconnected Laptop


    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.

     


     

    [Back to Top]



    Topic: Error message: "Need Server Side Includes"


    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'

     


     

    [Back to Top]



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


    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.

     


     

    [Back to Top]



    Topic: Installing MCMS 2002 without JavaVM


    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.


     

    [Back to Top]



    Topic: MCMS and Windows Server 2003 Web Edition


    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.


     

    [Back to Top]



    Topic: Roll back when installing Woodgrove sample site


    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.


     

    [Back to Top]



    Topic: Visual Studio .NET 2003 not recognized


    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.

     


     

    [Back to Top]





    Topic: Bad performance after process recycling


    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.


     

    [Back to Top]





    Topic: GB of multimedia


    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.


     

    [Back to Top]



    Topic: Is there a limitation for Postings per Channel?


    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.


     

    [Back to Top]



    Topic: Output caching with VaryByCustom="CMSRole"


    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.


     

    [Back to Top]



    Topic: Performance problems with .Text property


    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 );
    }


     

    [Back to Top]



    Topic: Poor performance


    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.


     

    [Back to Top]



    Topic: Storing 10000 items in a channel


    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)


     

    [Back to Top]



    Topic: VaryByCustom for Channels


    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" %>


     

    [Back to Top]



    Topic: WAST against MCMS


    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).


     

    [Back to Top]



    Topic: Listing placeholders


    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
    %>

     


     

    [Back to Top]



    Topic: Accessing Placeholder content using DataSource.RawContent


    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.


     

    [Back to Top]



    Topic: Administering User Roles with the Publishing API


    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.


     

    [Back to Top]



    Topic: Creating custom properties for a channel with the Publishing API


    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.


     

    [Back to Top]



    Topic: Custom placeholder definitions


    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.


     

    [Back to Top]



    Topic: Displaying the last modified date of a posting in local time


    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>");


     


     

    [Back to Top]



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


    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.


     

    [Back to Top]



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


    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.


     

    [Back to Top]



    Topic: Exception when uploading a file to the resource gallery


    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, ...)

     


     

    [Back to Top]



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


    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
      }

     


     

    [Back to Top]



    Topic: How to retrieve attachment size


    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.

     


     

    [Back to Top]



    Topic: Inline code


    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%>

     

     




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


    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.


     

    [Back to Top]



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


    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.


     

    [Back to Top]



    Topic: Performance problems with .Text property


    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 );
    }


     

    [Back to Top]



    Topic: Sharing resources


    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.


     

    [Back to Top]



    Topic: SortByName does not work


    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 🙂
    }

     


     

    [Back to Top]



    Topic: Unable to authenticate the current user in ASP.NET


    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).

     


     

    [Back to Top]



    Topic: Update mode


    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();



    [Back to Top]



    Topic: UserHasRightToBrowse does not work for parent channels


    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).


     

    [Back to Top]



    Topic: Visual Basic .NET and C#


    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.


     

    [Back to Top]



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


    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.


     

    [Back to Top]



    Topic: Background processing


    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.

     


     

    [Back to Top]



    Topic: Error Message: "'ConfigWindow' is undefined"


    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

     


     

    [Back to Top]



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


    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.


     

    [Back to Top]



    Topic: Failed to get Virtual Web Server Collection


    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.


     

    [Back to Top]



    Topic: Excluding navigation menu text


    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.


     

    [Back to Top]





    Topic: Supporting incremental searches


    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"));
      }


     

    [Back to Top]



    Topic: AESecurityService


    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).


     

    [Back to Top]



    Topic: Cookies


    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.


     


     

    [Back to Top]



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


    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.


     

    [Back to Top]



    Topic: 0x80041206 Error indexing your MCMS site


    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



    [Back to Top]



    Topic: 403 Error when loading MCMS Site


    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


    [Back to Top]



    Topic: 404.3 When Performing Site Deployment after Installing SharePoint


    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."


     

    [Back to Top]



    Topic: 500 Error after installing Office SharePoint Portal Server 2003


    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



    [Back to Top]



    Topic: 501 error when attaching an SharePoint Portal Server document


    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.

     


     

    [Back to Top]



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


    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


     

    [Back to Top]



    Topic: Are WordML and InfoPath the only supported formats for Spark


    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.


     

    [Back to Top]



    Topic: Connector for SharePoint Technologies and MCMS 2002 Standard Edition


    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.


     

    [Back to Top]



    Topic: Creating a content source


    I would like to setup a content source for Connector for SharePoint Technologies. How can I do this?


     


    Answer


    There are two possible ways to achieve this:



    1. Use the SearchSetup.EXE which does everything required automatically

    2. Use the following steps to create the content source manually by ensuring that the content index is named "Non_Portal_Content" and that the Content Source Group is named "CMSChannels". These criterias are required by the SearchResultControl coming with Connector for SharePoint Technologies.

     


     

    [Back to Top]



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


    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.


     

    [Back to Top]



    Topic: Enabling TraceListener Support


    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.


     

    [Back to Top]



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


    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.


     

    [Back to Top]





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


    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.


     

    [Back to Top]



    Topic: Error when reading registry


    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.


     

    [Back to Top]



    Topic: Error when using SearchSetup.exe


    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/"


     

    [Back to Top]



    Topic: Error: Could not connect to the Microsoft Content Management Server


    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.


     

    [Back to Top]



    Topic: Forms authentication


    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).


     

    [Back to Top]



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


    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.


     

    [Back to Top]



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


    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


     

    [Back to Top]



    Topic: How do I create search scopes for MCMS Channels


    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.


     

    [Back to Top]



    Topic: MCMS and Connector for SharePoint Technologies


    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.

     


     

    [Back to Top]



    Topic: MCMS Template Hyperlink Style Does Not Display Correctly


    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.


     

    [Back to Top]



    Topic: SearchPropertyCollection.xml and Custom Properties


    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.


     

    [Back to Top]



    Topic: SharePoint Portal Server and Secure Sockets Layer


    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.


     

    [Back to Top]



    Topic: SharePointDocumentPlaceholderDefinition not available in Placeholder Definition Editor in VS.NET


    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.


     

    [Back to Top]



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


    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.


     

    [Back to Top]



    Topic: The search engine was unable to process your request


    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.


     

    [Back to Top]



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


    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


     

    [Back to Top]



    Topic: Why are my documents not synchronized between CMS and SPS


    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.


     

    [Back to Top]



    Topic: You have not specified a valid Channel


    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


     

    [Back to Top]



    Topic: 401 during Site Deployment


    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.

     


     

    [Back to Top]



    Topic: 403 during Site Deployment


    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)

     


     

    [Back to Top]



    Topic: 404 during Site Deployment


    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.

     


     

    [Back to Top]



    Topic: 405 during Site Deployment


    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


     


     

    [Back to Top]



    Topic: 500 Errors With SD Import


    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.

     


     

    [Back to Top]



    Topic: Content not deployed to destination site


    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.


     


     

    [Back to Top]



    Topic: Deleted items are not deployed


    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)



    [Back to Top]



    Topic: Error message: "ASP 104 - Operation not allowed"


    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


     

    [Back to Top]



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


    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

     


     

    [Back to Top]



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


    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

     


     

    [Back to Top]



    Topic: Error message: "Overflow: 'CDate'"


    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

     


     

    [Back to Top]



    Topic: Error message: "The underlying connection was closed."


    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, ...)


     

    [Back to Top]



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


    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.


     

    [Back to Top]



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


    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.


     

    [Back to Top]



    Topic: Error when non-administrator executes SDAPI script


    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.

     


     

    [Back to Top]



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


    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.


     

    [Back to Top]



    Topic: Export to Object Package filename.sdo failed


    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)

     


     

    [Back to Top]



    Topic: How is the node cache affected by database import?


    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.

     


     

    [Back to Top]



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


    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.


     

    [Back to Top]



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


    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.


     

    [Back to Top]



    Topic: SDAPI access denied


    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.

     


     

    [Back to Top]



    Topic: Site Deployment created an invalid SDO file


    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.

     


     

    [Back to Top]



    Topic: Site Deployment does not export correctly. No postings are included, only Folders/Channels.


    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.


     

    [Back to Top]



    Topic: Site Deployment report does not list the exported items on large exports


    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.


     

    [Back to Top]



    Topic: The handle is invalid.


    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.

     


     

    [Back to Top]



    Topic: The XML parser could not parse the tag it was given


    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.

     


     

    [Back to Top]



    Topic: Timeout when importing or exporting an SDO file.


    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'.

     


     

    [Back to Top]



    Topic: "Use channel script with pages" option not persisted


    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".


     

    [Back to Top]



    Topic: Cannot logon to Site Manager with SSL


    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.


     

    [Back to Top]



    Topic: Dependent Report not working


    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.


     

    [Back to Top]



    Topic: Error Message: "An unexpected error has occured" after installing Windows Server 2003 SP 1



    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.


     


     

    [Back to Top]



    Topic: Error message: "Could not connect to the Microsoft Content Management Server localhost:80"


    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.

     


     

    [Back to Top]



    Topic: Error message: "Invalid server id."


    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

     


     

    [Back to Top]



    Topic: Error message: "Key is not unique in collection"


    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.


     

    [Back to Top]



    Topic: Error message: "Microsoft Content Management Server 2002 installation not found" when installing SP1


    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.

     


     

    [Back to Top]



    Topic: Error Message: "No mapping between account names and security IDs was done."


    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.


     

    [Back to Top]



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


    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.


     

    [Back to Top]



    Topic: Error message: "SQL Server does not exist or access denied"


    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.


     

    [Back to Top]



    Topic: Error message: "The Microsoft Content Management Server proxy component is not correctly installed"


    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


    [Back to Top]



    Topic: Error message: "The object invoked has disconnected from its clients"


    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.


     

    [Back to Top]



    Topic: Error message: "The system cannot find the file specified"


    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.


     

    [Back to Top]



    Topic: Error message: "Token too Large for current BLOB SIZE"


    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.


     

    [Back to Top]



    Topic: Error when uploading files to the resource gallery


    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)

     


     

    [Back to Top]



    Topic: How do I define a channel rendering script which takes parameters?


    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"]


     


     

    [Back to Top]



    Topic: Navigation URL


    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.


     

    [Back to Top]



    Topic: New objects added in SiteManager get renamed to "Untitled"


    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.

     


     

    [Back to Top]



    Topic: Problems with SiteManager after installing Windows XP Service Pack 2


    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.


     

    [Back to Top]



    Topic: Request too big on channel with many postings


    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.


     

    [Back to Top]



    Topic: Site Manager shows up in tabbed view rather than full screen


    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.

     


     

    [Back to Top]



    Topic: Site Manager: xxxxxx is not a valid user or group in domain


    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.


     

    [Back to Top]



    Topic: Valid users cannot logon to Site Manager on Windows XP


    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"

     


     

    [Back to Top]



    Topic: Changing the value of the Site Stager maximum broken links


    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.


     

    [Back to Top]



    Topic: Why do I get so many broken links when staging my site in Site Stager?


    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).


     

    [Back to Top]



    Topic: Accessing a MCMS Web site different from the Default Web site


    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.


     

    [Back to Top]



    Topic: Application for project type .csproj is not installed


    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.


     

    [Back to Top]



    Topic: Developertools.xml not found


    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.


     

    [Back to Top]



    Topic: Error Message: "Cannot MCMS-enable a project that is on a remote computer"


    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.


     

    [Back to Top]



    Topic: Error message: "Could not get the root template gallery"


    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.

     


     

    [Back to Top]



    Topic: Error message: "This operation requires the context of a Posting"


    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.


     

    [Back to Top]



    Topic: RobotMetaTag


    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).

     


     

    [Back to Top]



    Topic: Virtual directory "CMS" cannot be created


    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.

     


     

    [Back to Top]



    Topic: Visual Studio .NET 2003 and .NET Framework 1.1 support


    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.


     

    [Back to Top]



    Topic: Visual Studio .NET 2003 not recognized


    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.

     


     

    [Back to Top]



    Topic: Visual Studio .NET hangs on project creation


    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”


     

    [Back to Top]



    Topic: "400 Bad Request" when switching to live mode


    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


     

    [Back to Top]



    Topic: "Switch to Edit Mode" link is not visible on the channel cover page


    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

     


     

    [Back to Top]



    Topic: 401 when creating a new page in Webauthor


    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.


     

    [Back to Top]



    Topic: 403.1 when creating a new page in Webauthor


    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.


     

    [Back to Top]



    Topic: Alternative for HtmlPlaceholderControl


    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.


     

    [Back to Top]



    Topic: Authentication prompt when trying to access the server by name and not by IP


    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\ec­t\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


     

    [Back to Top]



    Topic: BaseAction ActionJavaScript


    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.

     


     

    [Back to Top]



    Topic: Change token


    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.

     


     

    [Back to Top]



    Topic: CmsAuthorizationModule missing in web.config


    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.


     

    [Back to Top]



    Topic: Creating internal anchors


    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)


     

    [Back to Top]



    Topic: Error message about missing reference to "Microsoft.Web.UI.WebControls"


    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" />


     

    [Back to Top]



    Topic: Error message: "'1' is not a valid identifier."


    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).


     

    [Back to Top]



    Topic: Error message: "A potentially dangerous Request.Form value was detected from the client"


    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" ...>


     

    [Back to Top]



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


    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

     


     

    [Back to Top]



    Topic: Error message: "Invalid Mode for Update" when saving new page


    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".

     


     

    [Back to Top]



    Topic: Error message: "Object doesn't support this property or method" when saving new posting


    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.


     

    [Back to Top]



    Topic: Error message: "Specified cast is not valid" when opening a page


    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.


     


     

    [Back to Top]



    Topic: Error message: "The module 'CmsAuthorizationModule' is already in the application and cannot be added again"


    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.


     

    [Back to Top]



    Topic: Error message: "The page cannot be displayed - Cannot find server or DNS Error"


    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


     

    [Back to Top]



    Topic: Error message: "The user does not have sufficient right to view the page." when clicking "Edit Hyperlink"


    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


     

    [Back to Top]



    Topic: Error message: "The View State is invalid for this page and might be corrupted"


    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.


     


     

    [Back to Top]



    Topic: Error message: "Type mismatch: Initialize Toolbar"


    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.


     

    [Back to Top]



    Topic: Error message: "Write access denied. The user does not have sufficient rights to perform the requested action."


    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.


     

    [Back to Top]



    Topic: Error when uploading files to the resource gallery


    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)

     


     

    [Back to Top]



    Topic: Exception in "ConvertUtc2Local"


    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


     

    [Back to Top]



    Topic: Extreme document load time


    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.


     

    [Back to Top]



    Topic: Forcing the download of ActiveX controls


    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

     


     

    [Back to Top]



    Topic: How can I pre-select a template when creating a new page?


    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)

     


     

    [Back to Top]



    Topic: IFRAME causes Javascript Error with Permission Denied


    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)
             {}
          }
       }
    }

     


     

    [Back to Top]



    Topic: Incorrect size and position of windows


    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;
    ...

     


     

    [Back to Top]



    Topic: Is it possible to pre-install the ActiveX controls for the Web Author?


    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.


     

    [Back to Top]



    Topic: Line Breaks in the HtmlPlaceholderControl


    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>.


     

    [Back to Top]



    Topic: Multiple Instances of the HtmlPlaceholderControl Toolbar


    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.


     


     

    [Back to Top]



    Topic: Page is refreshed when trying to save new page.


    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.


     

    [Back to Top]



    Topic: Placeholder content is lost when saving or doing preview


    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.


     

    [Back to Top]



    Topic: Problem uploading big files


    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.


     

    [Back to Top]



    Topic: Script error when switching to edit mode or when saving a posting.


    #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


     


     

    [Back to Top]



    Topic: Setting the spell check language in Web Author


    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


    [Back to Top]



    Topic: Supported Browsers for the Web Author


    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.


     

    [Back to Top]



    Topic: Template Gallery resources reference "/CMS/CMS/..."


    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"

     


     

    [Back to Top]



    Topic: Toolbar button "Edit Source" grayed out


    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.


     

    [Back to Top]



    Topic: Tree view refreshes without postback


    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)
    ...


     

    [Back to Top]



    Topic: Treeview broken in the Web Author


    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.


     

    [Back to Top]



    Topic: Ugly URL after postback


    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>
    <% } %>

     


     

    [Back to Top]



    Topic: Ugly URL when switching from edit to live mode


    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);
    }
    }
    }
    ...
    }
    }


     


     

    [Back to Top]



    Topic: Users not authenticated with Standard Edition


    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).


     

    [Back to Top]



    Topic: View state error when changing application pool of template application


    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


     

    [Back to Top]



    Topic: Warning: "Are you sure you want to navigate away from this page?"


    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.


     

    [Back to Top]





    Topic: Broken references


    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.

     


     

    [Back to Top]



    Topic: Credentials are not accepted when importing the Woodgrove sample site on Windows XP


    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".


     

    [Back to Top]



    Topic: Homeport instead of MCMS cover page


    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.


     


     

    [Back to Top]



    Topic: Left navigation highlight


    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.


     

    [Back to Top]



    Topic: Project error


    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

     


     

    [Back to Top]



    Topic: Roll back when installing Woodgrove sample site


    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.


     

    [Back to Top]



    Topic: Tree Control Styles


    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"

     


     

    [Back to Top]



    Topic: Woodgove and CMS 2002 SP1a


    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:





    Topic: Woodgrove Installation hangs


    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”


     

    [Back to Top]



    Topic: WoodgroveInternational sample site install does not import sample data


    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.


     

    [Back to Top]



    Topic: Declined Posting does not get assigned back to the Author


    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


    [Back to Top]



    Topic: Editor vs. Moderator


    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.


     

    [Back to Top]



    Topic: Posting goes offline when waiting for Moderator approval


    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.

     


     

    [Back to Top]



    Topic: What is the sequence of Workflow Events?


    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

     


     

    [Back to Top]



    Topic: Workflow with empty Editor/Moderator groups


    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.


     

    [Back to Top]

 

Comments (0)

Skip to main content