Understanding PRESCAN.EXE Errors

*UPDATED 5/22/2007 

I put together this post as a follow-up to my initial PRESCAN topic “Understanding PRESCAN.EXE in MOSS 2007“; hopefully, this will provide insight into the most common PRESCAN errors administrators may encounter and remediation steps where available. These solutions may not fit every environment due to the natural differences in topologies, hosting models, versioning, and infrastructure.

Error:

There is no Web named “/<path>/<site>”.


  1. The Content Database contains one or more orphaned Webs.  A Web may not have a parent Windows SharePoint Services 2.0 site.

Find and repair orphaned Webs, Lists, and Document Libraries using STSADM -o databaserepair -url http://<server&gt; -databasename <WSS2.0_Content_Database> [-deletecorruption].  This operation requires hotfix KBs 918742 and/or 918744.  Joel Oleson has a great post on these hotfix KBs here.

Error:

Cannot locate list definition required for upgrade. Check to ensure you have all templates and language packs installed.
Error: Exception scanning web:
http://<server>/<path>/<site>
System.IO.FileNotFoundException: The system cannot find the file specified.


  1. A Windows SharePoint Services 2.0 language pack or Windows SharePoint Services 2.0 application template is not installed.


  2. Templates used by SharePoint Portal Server 2003 can be incorrectly identified during the pre-upgrade scan as custom templates unless you use the preupgradescanconfig.xml file when you perform the scan. This file contains additional logic to identify the portal site templates as standard templates used by SharePoint Portal Server 2003 rather than as custom templates based on Windows SharePoint Services 2.0.


Install language packs and application templates as required or use the preupgradescanconfig.xml file when you perform the scan.

Error:

[UpgradeDiscussionLists] [3.0.87.0] [ERROR] [12/11/2006 5:06:15 PM]: Data is Null. This method or property cannot be called on Null values.

[UpgradeDiscussionLists] [3.0.87.0] [ERROR] [12/11/2006 5:06:15 PM]: Item update failed for list 3cc63b2b-8a42-4ef3-bfa4-6e40f4827ec6, thread 20051208-1643-2400-a3fe-67a3e9495a11, ordering 20051208164324


  1. Required fields are NULL on a List within a Web and/or Windows SharePoint Services 2.0 site.  As an example, a Discussion Board may contain one or more posts with a blank Subject and/or Body field. 

Using the reported ListId, Identify the Web and/or Windows SharePoint Services 2.0 site hosting the List and correct the input as necessary.

Error:

Upgrade has encountered one or more lists that were not updated by Prescan.exe and must exit. The most likely reasons for Prescan to skip a list are covered in the Knowledge Base article at: http://go.microsoft.com/fwlink/?linkid=69958&clcid=0x409. For more information about which lists were not upgraded, see the upgrade log file at LocationOfLogFile.


  1. The content database contains one or more orphaned lists. For example, a list may not have a parent Windows SharePoint Services 2.0 site.
  2. The content database contains one or more Windows SharePoint Services 2.0 sites that use an included path. Additionally, the included path is not defined on the server.

See http://support.microsoft.com/kb/923904 for additional information.

Error:

“PRESCAN failed for site /<prefix>/<site>.  The site could not be access through the SharePoint Object Model.”


  1. A Windows SharePoint Services 2.0 Inclusion path is missing.  Confirm all inclusion paths used by Windows SharePoint Services 2.0 sites are available.

If PRESCAN fails on any Content Database you will receive an error when attempting to run the upgrade which will render as follows:

The pre-upgrade scan tool has not yet been run on this database SPContentDatabase Name=Some_Content_Database Parent=SPDatabaseServiceInstance. You must run the pre-upgrade scan tool before you can continue with the upgrade process. Run the tool from the following path: C:Program FilesCommon FilesMicrosoft SharedWeb Server Extensions12binprescan.exe.

Error: Prescan has encountered sites or lists that were not updated because they cannot be accessed using the SharePoint Products and Technologies object model. The most likely reasons for Prescan to skip a list are covered in the Knowledge Base article at: http://go.microsoft.com/fwlink/?linkid=69958&clcid=0x409.

Error:

FAILED to persist field schema of lists in web [insert URL of site]

Error: The following site has not been scanned. Id = df843563-2961-41ff-ad61-0414c67d7305 and Url = abc/TestABC

Error: The following list has not been scrubbed: Id=6bfb5f3d-fa4b-4c71-b251-0778e0e1018a, Name=Web Part Gallery, Containing Web=abc/TestABC


  1. The content database contains one or more orphaned lists. For example, a list may not have a parent Windows SharePoint Services 2.0 site.

Error:

The site http://<server>/<path>/<site> cannot be opened. The site might be corrupted. To fix this problem, delete the site and recreate it.

Error: The following site has not been scanned. Id = f85aaeee-b93e-491f-b2ff-88d449f1166f and Url = <path>/<site>
http://support.microsoft.com/kb/918744


  1. The configuration database contains one or more orphaned or inaccessible site collections. Confirm the site exists or unlock the site collection in Central Administration. If the site does not exist, recreate the site collection and run PRESCAN.

Error:


This server is not the indexer of this search application.



  1. This issue occurs if the Windows SharePoint Services 3.0 database is hosted on a separate computer that is running Microsoft SQL Server. In this situation, the Windows SharePoint Services search logon account may not have the correct permission to access or to query the Windows SharePoint Services database on the computer that is running SQL Server.  To resolve this issue visit http://support.microsoft.com/kb/923896/en-us.

Error:


An exception of type Microsoft.SharePoint.PostSetupConfiguration.PostSetupConfigurationTaskException was thrown.  Additional exception information: The pre-upgrade scan tool has not yet been run on all servers in the farm.  You must run the pre-upgrade scan tool before you can continue with the upgrade process.  Run the tool from the following path: c:program filescommon filesMicrosoft sharedweb server extensions12binprescan.exe.  After you have reviewed any issues found by the tool, you can run psconfig.exe again to continue the upgrade process.



  1. This issue occurs if psconfig.exe was run prior to successfully running the pre-upgrade scan tool in the server farm.  Run the pre-upgrade scan tool and resolve any reported issues before running psconfig.

To determine where PRESCAN failed you can run the attached query against your content databases, the results of the SQL statement are the Site Collections in which PRESCAN was unable to properly scan and/or access through the SharePoint Object Model.


SELECT FullUrl, Id
FROM Sites
WHERE bitflags NOT LIKE262144


Error:  “An outbound zone URL is configured for something other than the default zone on virtual server http://fabrikam/, and no default zone outbound URL is defined.  This is not supported, and must be corrected before upgrading.”



  1. This error occurs when no defaultzoneoutgoingurl is defined for the Windows SharePoint Services 2.0 virtual server; in Windows SharePoint Services 2.0 it was valid to not have a URL in the default zone while subsequently having URLs in non-default zones.  You can correct this issue by using the stsadm.exe -o addzoneurl operation or alternatively accessing the values through the Object Model (code sample below).


You can review the properties programmatically in the SPVirtualServer.Config object; a example of these values of the properties is attached below.


Example:


DefaultZoneOutgoingUrl = “”
IntranetZoneOutgoingUrl = “”
InternetZoneOutgoingUrl = “”
ExtranetZoneOutgoingUrl = “http://fabrikam/


The outgoing URLs are stored in the configuration database in the “Properties” field of “VirtualServers” table.  See an example of the “Properties” field value below:

<?xml version=”1.0″ encoding=”utf-16″?><properties><version value=”1″ /><filter><inclusions><inclusion>/</inclusion><inclusion>/sites/*</inclusion><inclusion>/personal/*</inclusion></inclusions><exclusions><exclusion>/uddi</exclusion><exclusion>/uddipublic</exclusion><exclusion>/mapaweb</exclusion></exclusions></filter><miscellaneous><property name=”securityvalidation-expire” value=”True” /><property name=”virtualserverpermsmask” value=”-1″ /><property name=”data-retrieval-services-oledb-providers” value=”DB2OLEDB;IBMDADB2;MSDAORA;OraOLEDB.Oracle;SQLOLEDB” /><property name=”extranetzoneoutgoingurl ” value=”http://someurl/” /><property name=”ssc-contact” value=”no” /><property name=”send-ad-email” value=”True” /><property name=”ssc” value=”yes” /><property name=”securityvalidation-enabled” value=”True” /><property name=”securityvalidation-timeout” value=”30″ /></miscellaneous></properties>

To access the values through the Object Model in the event te STSADM operation does not resolve the issue, use the sample code below as guidance.

SPGlobalAdmin ga = new SPGlobalAdmin();
SPVirtualServer vs = ga.OpenVirtualServer(new Uri(“http://” + System.Environment.MachineName));
vs.Config.ExtranetZoneOutgoingUrl = null;
vs.Config.Properties.Update();

You can then remove the <property name=”extranetzoneoutgoingurl ” value=”http://fabrikam/” /> property which should resolve the issue.

Microsoft GroupBoard Workspace 2007!

The first available Windows SharePoint Services 3.0 application templates has been released. the Microsoft GroupBoard Workspace 2007.  This is the Windows SharePoint Services 3.0 implementation of the most widely used Windows SharePoint Services 2.0 template in the Asia Pacific region with a host of improvements supporting the technologies and features available in Windows SharePoint Services 3.0.

Overview


The Microsoft GroupBoard Workspace template creates a space for a group or team to connect and share information in a collaborative environment, improving team efficiency and productivity. The template helps track team member whereabouts and status, and includes a built-in timecard list and organization chart. Meetings can be scheduled with attendees, and meeting rooms and other resources can be reserved. It also enables members to share phone messages and circulate memos.
The GroupBoard Workspace 2007 template is available in two versions:
GBW2007_x86_en-us.exe – 32-bit version of GroupBoard Workspace 2007
GBW2007_x64_en-us.exe – 64-bit version of GroupBoard Workspace 2007

Download Microsoft GroupBoard Workspace 2007

Learn more about Microsoft GroupBoard Workspace 2007

Discover Application Templates for Windows SharePoint Services 3.0

Upgrade Toolkit for Windows SharePoint Services Sites and Templates Guide

MOSS 2007 & WSS 3.0 RTM Software Development Kits

The Windows SharePoint Services 3.0 RTM Software Development Kit have been released to MSDN; for those looking for the Microsoft Office SharePoint Server 2007 Software Development Kit click here, each includes documentation, as well as code examples within the topics and contains the highest-priority documentation for developing on each platform.  I’d be interested to hear what others are developing and how the information contained in the SDK’s contributed to that project.

Simple Query to Audit Site Collection/Web Access Levels

USE SELECT DISTINCT t1.siteID,t2.webID, t2.title [accessLevel],t3.tp_login,CONVERT(DECIMAL(6,2),((CONVERT(DECIMAL,t4.diskUsed)/1024)/1024)) [diskUsed MB], t6.fullUrlFROM DBO.RoleAssignment t1 JOIN DBO.roles t2 ON t2.siteID = t1.siteID AND t2.roleID = t1.roleID AND t2.roleID = 1073741829 JOIN DBO.userInfo t3 ON t3.tp_siteID = t1.siteID AND t3.tp_id = t1.principalID JOIN DBO.sites t4 ON t4.[id] = t1.siteID JOIN DBO.perms t5 ON t5.siteID = t1.siteID AND t5.scopeID = t1.scopeID JOIN webs t6 ON t6.[id] = t5.webID

Windows SharePoint Services 2.0 vs. 3.0 Incremental Crawl

In a recent conversation with a colleague I was asked the differences between Windows SharePoint Services 2.0 and 3.0 incremental crawls and the availability of results and thought I would share and explain briefly the differences here:


In Windows SharePoint Services 2.0 when an incremental crawl is run, SharePoint determines whether or not a document has changed and should therefore be included in the incremental crawl results. It does it by performing a hash of the document, if the hash is different between crawls, then so is the document and the document is readily; though, perhaps not immediately available to search results, but are available prior to any complete crawl being run successfully.


For the Windows SharePoint Services 3.0 these rules have changed; the crawler uses the Windows SharePoint Services change log to inform itself of changes made to a site collection. This change log informs the crawler whether items have been added, modified, or deleted and the crawler managed the change according to those variables and will always append to the existing index on the indexer and makes the results immediately available.


In retrospect, the item is not available in search results until it is crawled and propagated (seconds) in Microsoft Office SharePoint Server 2007. It does not wait for the crawl to complete, but happens on an ongoing basis. The key to achieving the most current results propagation are frequent incremental crawls.