Transferring a site from WSS 3 to MOSS 2007 – Part 2

November 22, 2008

10 comments

In my previous post, I’ve described my general guidelines for exporting a WSS 3.0 site, to a MOSS 2007 farm.

In this post, I will cover the errors and problems I’ve stumbled upon, and how I’ve fixed them.

Import and Export errors, and their fixes.

Your backup is from a different version.

This error happened on my first try. I was trying to use backup and restore using STSADM, and got the error.

The complete error message was:

“Your backup is from a different version of Windows SharePoint Services and cannot be restored to a server running the current version.

The backup file should be restored to a server with version ‘12.0.0.6219′ or later.”

This one is very easy, and I’ve mentioned it in my guidelines: you should make sure both servers, the source and target, are running the same versions. In some cases, if the target server is running a higher version, the restore will still work.

In this case, the WSS server had SP1 installed, while the MOSS 2007 server didn’t. I’ve just installed SP1, and that’s it.

If you need instructions, on how to do it, a very good post about that, is here: How to install WSS and MOSS SP1.

STSADM Export FatalError: Guid should contain 32 digits with 4 dashes

This is the first error I’ve got, when I tried to export the site collection. I didn’t solved this one by myself, I’ve found the solution in a post with the same title.

In short, this error happens when the export process tries to export the fields. It appears that in the “Fields.xml” file, there’s an “ID” attribute for each field, holding the GUID for that field. However, the string is surrounded by curly brackets, which breaks the export.

Find the file in:

C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\TSATypes\Fields.xml

and back it up somewhere.

Remove the curly brackets, through out the file, and you’re all set to go.

Could not find WebTemplate

As I’ve mentioned in the previous post, the original site wasn’t documented, and it was used for lots of try-outs of all kinds.

One of the try-out the company’s employees did, was to install some application templates, taken from the “Fantastic 40” pack.

The “Fantastic 40”, in case you are not familiar with it, is a set of application templates, and site templates, developed by Microsoft, and available for free on TechNet. The pack includes all kinds of templates, to extend the out of the box template pack, which is included with WSS 3.0. As an example, you can find there an HR modules, such as “Absence Request and Vacation Schedule Management“, “Inventory Tracking” module, and so on and so forth.

To read more about it, and to download it, go to: Application Templates for Windows SharePoint Services 3.0.

The complete error message I’ve got was something like that:

“FatalError: Could not find WebTemplate XXXXXX with LCID 1033”

LCID, is the Language Code ID. My source and target sites, were both in English, so I didn’t had no problems there.

XXXXXX was some kind of ID for the template. As an example, I’ve got something like: “KB#75806”, which directed me to the Knowledge Base template (the “KB” is the clue Winking). Another one I had was “ITTEAM#75817”, which was, of course: IT Team Workspace. I think you’re catching the idea by now.

You might ask “why not install all of them and that’s it?”, well, you might be right, but I just didn’t want to install things I didn’t really need.

If you do want to install all the template at once, just extract them to a single folder, and create a batch file in that folder. Copy the following code to that batch file, and run it:

set stspath=”C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\”

for %%wspfile in (*.wsp) do %stspath%stsadm.exe -o addsolution -filename %%wspfile
for %%wspfile in (*.wsp) do %stspath%stsadm.exe -o deploysolution -allowgacdeployment -immediate
      -name %%wspfile

The content type name cannot contain: (list of chars)

I have to admit that I didn’t manage to overcome this one, just to go around it.

The complete error message is:

“FatalError: The content type name cannot contain: \  / : * ? ” # % < > { } | ~ &, two consecutive periods (..), or special characters such as a tab.”

I’ve search the Internet for a solution for that, and find all kind of forums’ threads, such as this one: stsadm import error content type name cannot contain, or this one:  Import Site Error.

The only thing I learned from them was that it is an error related to the “Fantastic 40” templates. To work around this error, I’ve created a new blank site collection, and just imported the sub sites, one after another.
This worked just fine!

The problem here was that the root site had some lists and document libraries in it, so I had to copy them to.

To copy document libraries which doesn’t have any custom fields

The easiest thing to do here, is to create the document library on the new server, with the same name, permissions’ set, etc.
Use two browser windows, side by side, and switch the document libraries to explorer view (both of them). Now just drag the files from the source library to the target.

And if explorer view doesn’t work?

Well, I had this problem, and there might be some reasons for that.

The first thing you should check, is if your “WebClient” service is running. To do so, go to “Start -> Run” and type “services.msc” to load the services console. Look for the “WebClient” service and start it.

If explorer view still doesn’t work, try to add the site to your trusted sites in IE (that is always a good idea).

Another thing you might want to check, is if WebDav, is enabled in IIS. To do so, go again to “Start -> Run” and type “inetmgr”, to load IIS manager. Go to “Web Server Extension”, mark “WebDav”, and click “Allow”.

To export and import lists

I’ve mentioned before an STSADM extension I was using, so here is the place to elaborate a bit about it.

When I was looking for a way to export lists, I’ve found Gary Lapointe’s blog, who published these cool Custom STSADM Extensions. There are many extensions there, some of them are really important and helpful (I didn’t use them all). You should really have a look over them.

I’ve used his gl-exportlist to export the lists I needed from the source site, and then gl-importlist to import it back.

There are other methods, like saving the list as a template, with the content. To do so, go to your list, and in the “Settings” menu, choose “List Settings”.

Click the “Save list as template, under “Permissions and Management”.

Save list as template

In page that loads, fill in the necessary details, and don’t forget to mark the “Include Content” checkbox.

include content

Personally, the STSADM extension worked better for me.

The update cannot be started because the content sources cannot be accessed.

This error is actually a post migration error. After I’ve finished everything, and the new site seemed to work properly, the IT manager complained about this error, which kept appearing in the Event View.

The detailed error was:

“The update cannot be started because the content sources cannot be accessed. Fix the errors and try the update again.

Context: Application ‘Search’, Catalog ‘index file on the search server Search’

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp”

The solution for that one is actually very simple. The search service, needs to write some data to index files, located in a file system folder. This file system, is being set, when you configure the search service for the first time.

By default, as with any NTFS folder, this folder has only limited amount of permissions.

Now, if you’ve used best-practices while installing, and used a dedicated domain account, which isn’t a domain admin, to run your SharePoint Search service, this service probably doesn’t have permissions for that folder.

To solve it, first find the data folder for the search service. In Central Admin, go to “Operations -> Servers in Farm” and locate the server running the search service.

Click it’s name and you will be transferred to the “Services on Server” page.

Click the “Office SharePoint Server Search” link, to get to its settings page and there note the “Default index file location” text box, and copy that path.

default index location

Browse to that folder, and grant permissions to Modify, for the domain user which runs the service.

A single user complains that his files lost during the migration process.

If you recall, I wrote in my guidelines (in the previous post) to make sure that files are checked in. And this is exactly the reason.

This error occurs, usually, when the complaining user didn’t PUBLISH his file to the library even once. There for, they are still personal and in draft mode, and no body, including the site collection’s administrator can see them.

The solution here, as I said, is very easy, just have the user publish his files.

 

Well then, that’s all from this process. I hope it will help someone in the future, and I’ll be happy to hear about it.

I’ll be also very happy to hear about problems you’ve encountered and how you solved them (if you did).

Add comment
facebook linkedin twitter email

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

10 comments

  1. StuartFebruary 12, 2009 ב 16:13

    Hi

    I’ve read your article – thanks. Unfortunately it hasn’t helped me resolve my problem when importing a large site from WSS 3.0 to MOSS 2007. I keep getting the error given below:

    FatalError: String was not recognized as a valid DateTime.
    at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyl
    es styles)
    at System.String.System.IConvertible.ToDateTime(IFormatProvider provider)
    at System.Runtime.Serialization.FormatterConverter.ToDateTime(Object value)
    at System.Runtime.Serialization.SerializationInfo.GetDateTime(String name)
    at Microsoft.SharePoint.Deployment.MetaInfoProperty..ctor(SerializationInfoHe
    lper infoHelper)
    at Microsoft.SharePoint.Deployment.FileSerializer.GetMetaInfo(SerializationIn
    foHelper infoHelper)
    at Microsoft.SharePoint.Deployment.FileSerializer.CreateOrUpdateFile(Object f
    ileOrListItem, SPWeb web, Guid id, String& fileUrl, Boolean fileExistsInDb, Bool
    ean isFirstVersion, SerializationInfoHelper infoHelper, SerializationInfoHelper
    infoHelperListitem, StreamingContext context, ImportObjectManager importObjectMa
    nager)
    at Microsoft.SharePoint.Deployment.FileSerializer.CreateOrUpdateFileVersion(O
    bject fileOrListItem, SPWeb web, Guid id, String& fileUrl, Boolean fileExistsInD
    b, String version, Boolean isFirstVersion, SerializationInfoHelper infoHelper, S
    erializationInfoHelper infoHelperListitem, StreamingContext context, ImportObjec
    tManager importObjectManager)
    at Microsoft.SharePoint.Deployment.ListItemSerializer.AddOrUpdateDoclibItemVe
    rsion(SerializationInfoHelper infoHelper, SPListItem& listItem, SPWeb web, Guid
    newId, String& listItemServerRelativeUrl, Boolean bIsPublish, Boolean exists, St
    ring version, Boolean isFirstVersion, Boolean isLastVersion, StreamingContext co
    ntext, ISurrogateSelector selector, ImportObjectManager objectManager)
    at Microsoft.SharePoint.Deployment.ListItemVersionSerializer.AddListItemVersi
    on(SPWeb web, SPListItem listItem, Guid newId, Boolean editHistory, Boolean exis
    tsInDb, Boolean isFirst, Boolean isLast, Boolean isDocLib, StreamingContext cont
    ext, XmlElement listItemData, SPImportSettings settings, ImportObjectManager obj
    ectManager, SerializationInfoHelper listItemInfoHelper, String& listItemServerRe
    lativeUrl, ISurrogateSelector selector)
    at Microsoft.SharePoint.Deployment.ListItemSerializer.UpdateListItemVersionDa
    ta(SerializationInfoHelper infoHelper, SPWeb web, SPListItem& listItem, Guid new
    Id, Boolean existsInDb, Boolean isDocLib, String& listItemServerRelativeUrl, Str
    eamingContext context, SPImportSettings settings, ISurrogateSelector selector)
    at Microsoft.SharePoint.Deployment.ListItemSerializer.SetObjectData(Object ob
    j, SerializationInfo info, StreamingContext context, ISurrogateSelector selector
    )
    at Microsoft.SharePoint.Deployment.XmlFormatter.ParseObject(Type objectType,
    Boolean isChildObject)
    at Microsoft.SharePoint.Deployment.XmlFormatter.DeserializeObject(Type object
    Type, Boolean isChildObject, DeploymentObject envelope)
    at Microsoft.SharePoint.Deployment.XmlFormatter.Deserialize(Stream serializat
    ionStream)
    at Microsoft.SharePoint.Deployment.ObjectSerializer.Deserialize(Stream serial
    izationStream)
    at Microsoft.SharePoint.Deployment.ImportObjectManager.ProcessObject(XmlReade
    r xmlReader)
    at Microsoft.SharePoint.Deployment.SPImport.DeserializeObjects()
    at Microsoft.SharePoint.Deployment.SPImport.Run()
    Progress: Import Completed.
    Finish Time: 2/12/2009 2:11:07 PM.
    Completed with 2 warnings.
    Completed with 1 errors.

    Any ideas?

    Thanks

    Reply
  2. StuartFebruary 12, 2009 ב 17:47

    Apologies if you’ve already received this message.

    Thanks for the article. Unfortunately it has not helped me solve my current problem of exporting a large WSS 3.0 subsite and then importing it into a new MOSS 2007 installation. The import process fails with a

    String was not recognized as a valid DateTime

    message.

    Any ideas?

    Reply
  3. JoeFebruary 13, 2009 ב 00:34

    Hello Stuart,

    That error usually happens when the string that represents a data, is in a wrong format. As an example, American date format is MM/DD/YYYY, if your string looks like that: “13/01/2009” (European format), you’ll get this error.

    I would check regional settings on both servers as a first step.

    Please feel free to send me a private message using the contact form here, if you need further help.

    Good luck.
    Joe

    Reply
  4. StuartFebruary 17, 2009 ב 15:47

    Hi Joe

    Thanks for the suggestion. I checked the regional settings on both servers and they are both set to the UK. I’ve embarked on a mission to track down and remove the problem documents using a combination of the import log info and SQL server queries.

    Trouble is I’ve run through this repeating process of running an export, then an import and then removing the relevant document a few times now and there’s no telling how many of the several thousand documents may be causing this issue! I don’t think I can persist with this…

    Thanks again.

    Reply
  5. Jesse OntiverosAugust 5, 2009 ב 16:43

    Do any of you know what WebTemplate SGS#15 with LCID 1033 is?

    When I try to move a site collection with SharePoint Content Deployment Wizard I get an Error: Could not find WebTemplate SGS#15 with LCID 1033. Can any one help me please.

    Thanks

    Reply
  6. JesseAugust 5, 2009 ב 16:45

    Does anyone knows what WebTemplate is this: SGS#15 with LCID 1033. When I try to move a site collection with SharePoint Content Deployment Wizard I get an Error: Could not find WebTemplate SGS#15 with LCID 1033. Can any one please help.

    Thanks

    Reply
  7. JoeAugust 5, 2009 ב 19:41

    Hello Jesse,

    I believe it is the GroupBoard Workspace template.
    You can find more details, and download it here:
    http://technet.microsoft.com/en-us/windowsserver/sharepoint/bb848080.aspx

    Good luck,
    Joe

    Reply
  8. Jesse OntiverosAugust 10, 2009 ב 23:32

    Thank you Joe, I really appreciate your help.
    I have another problem. I can’t install the 40 templates in a windows 2008 64 bit server running MOSS 2007 SP2 WSS 3.0. When I try to install the core template I get an error when trying to deploy Globally. I try to install any template and it just says error when trying to deploy a template on a 64 bit server. Is there a way to use any of the templates at all on a 64 bit server using MOSS 2007 SP2? Any suggestions, ideas or guidance, will be greatly appreciated.

    Thank you

    Reply
  9. Jesse OntiverosAugust 11, 2009 ב 16:42

    Thank you Joe, I really appreciate your help.
    I have another problem. I can’t install the 40 templates in a windows 2008 64 bit server running MOSS 2007 SP2 WSS 3.0. When I try to install the core template I get an error when trying to deploy Globally. I try to install any template and it just says error when trying to deploy a template on a 64 bit server. Is there a way to use any of the templates at all on a 64 bit server using MOSS 2007 SP2? Any suggestions, ideas or guidance, will be greatly appreciated.

    Thank you

    Reply
  10. JoeAugust 16, 2009 ב 09:15

    Hello Jesse,

    Do you get a specific error message? If so, can you post it or send it to me by mail?

    I will try to deploy the templates on a 64bit box, but as far as I remember there weren’t no problems last time.

    Joe

    Reply