*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>".
Find and repair orphaned Webs, Lists, and Document Libraries using STSADM -o databaserepair -url http://<server> -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.
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.
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.
[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
Using the reported ListId, Identify the Web and/or Windows SharePoint Services 2.0 site hosting the List and correct the input as necessary.
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.
See http://support.microsoft.com/kb/923904 for additional information.
"PRESCAN failed for site /<prefix>/<site>. The site could not be access through the SharePoint Object Model."
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 Files\Common Files\Microsoft Shared\Web Server Extensions\12\bin\prescan.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.
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
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
This server is not the indexer of this search application.
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 files\common files\Microsoft shared\web server extensions\12\bin\prescan.exe. After you have reviewed any issues found by the tool, you can run psconfig.exe again to continue the upgrade process.
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, IdFROM SitesWHERE bitflags NOT LIKE '262144'
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.”
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.
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.