Resolving the MySite File Exists Error

I have seen this error come up a few times, and reported frequently on the MSDN/TechNet Forums. Once the problem is understood, it is fairly easy to correct.

There are a few different pieces that come into play when a user clicks on the My Site link at the top of a MOSS page. The user goes through a centralized MySite.aspx page that acts as a redirect. A check is done to see if the user already has a My Site specified in their profile. If there is a site specified it sends them to the site, if the site is not specified it sends them through the site creation process.

Error
On a couple of occasions I have seen the following error:

The file exists. (Exception from HRESULT: 0x80070050)

Troubleshoot issues with Windows SharePoint Services.

This happens because the user’s profile does not contain a valid path in the Personal site field. The user is then pushed into the site provisioning process, but since the site paths have to be unique, the process is unable to create a new site.

For some reason the profile field was reset or corrupted leaving it blank or filled with something like an error code or invalid statement.

Resolution
To resolve this issue, you want to first validate the path to the user’s site. The path will vary depending on your setup and naming conventions, but it should be something like http://servername/personal/juser

Once you know what the valid path is, update the Personal site property to include the valid path. Ex. “/personal/juser”

To update the user’s profile:

  • Navigate to the Shared Service Provider
  • Click the User profiles and properties link
  • Click the View user profile link
  • Search for the user’s profile
  • Click the Edit option in the item’s menu
  • Update the Personal site property
  • Click the Save and close option in the toolbar

What causes the error?
On a few occasions the cause could not be determined. Since it was easy to fix we didn’t spend a whole lot of time looking into the cause. The majority of the instances happened after an Active Directory migration where the user’s profile was migrated incorrectly.

When going through an account migration either through Active Directory, or in switching to something like Forms Based Authentication (FBA), make sure you migrate the user profiles using Migrate User. Additional information can be found on that topic at the blog post titled SharePoint AD Migrations: Users and Servers.

Blogsphere Search Keywords

Looking at Technorati today I was surprised to see their results of some SharePoint related keyword activity.

I pulled a graph with “SharePoint”, “MOSS”, “Workflow”, and “Office 14” which is shown below.

Keyword popularity across the Blogosphere
This chart illustrates how many times blog posts across the Blogosphere contained the following keywords.

It has been awhile since I’ve referred to it as MOSS, though 90% of the work I do is related to MOSS environments. I must be in the minority because the MOSS keyword is frequently used.

Looks like there has been a lot of press on Office 14 which is quickly picking up steam for a release sometime next year.

SharePoint Collaboration Feature Wishlist

As we slowly inch closer to vNext aka Office 14 I have recently been thinking about some of the productivity and connectivity features I really wish Microsoft would concentrate on. I am pretty sure none of these are addressed in Office 14, but maybe it is not too late to start thinking about them for the next product cycle.

Presence and Modular Messaging
One of my current pains is centered on integration with various messaging services. Despite Microsoft’s best efforts MSN / Live Messenger never really took off and within the enterprise, Communications Server was just a bit too late to take hold. There really needs to be a mechanism for integrating with multiple messaging platforms. There are plenty of web applications that do this well, it is nothing new.

In my current environment Skype is the standard messaging tool. It is secure, operates very well internationally, and the price is pretty attractive as well. I have extended our user profiles in MOSS to include the Skype Contact information and written a simple web part to display status and connection commands. While that is all very valuable, it sure would be nice if we could use this to communicate online presence, or if it could be easily integrated into the presence actions through configuration. I am currently looking into the ability to extend that functionality with the Skype functions, but so far have not had much time to dedicate to that.

Enterprise RSS
Users can currently add RSS to a page via a standard web part, but what I would really like to see is a true Enterprise RSS solution that supports subscription management, categories, the ability to share feeds with colleagues, and content based recommendations.

It would also be nice if there were web services or web parts that helped expose the data so that the functionality can also be integrated into site collections that support things like Communities of Practice.

Tiny URL
SharePoint URLs have gotten too long. I frequently run into instances where URLs being tracked in SharePoint lists and menus are over 250 characters. This is a pain for end users to work with, but even worse if you try and save it in a SharePoint link field the value gets truncated.

I certainly do not advocate using external services to bookmark or track internal, secure resources. For this to work, it has to be part of an internal service, preferably one that can be either included in the browser of built using Javascript/Ajax stored in a toolbar link.

Time will tell…
Time will tell what they end up adding to the platform, but I think these features would help to foster collaboration and information sharing across the organization.

Migrate a Site Collection with Different Patch Level and User Accounts

I was recently asked to restore a site collection that was being hosted on an external provider’s network without any SharePoint patches installed. There were also some custom templates installed that had to be tested internally.

Bringing this site in took a little extra work. We couldn’t just restore the site collection backup into the regular production farm.

Update: – When I originally wrote this post I thought both servers had to be at the exact same patch level, but this is incorrect. The target server needs to be the same or greater.

To handle this, I went through the following steps:

Step 1 – Create a new farm with matching revision level (or greater)
The system I configured was a basic one server install of MOSS.

You can find your version number by migrating to any SharePoint site’s settings page (i.e. Site Actions, Site Settings). Here is a resource for matching your version level to the installed patch level: http://www.mindsharpblogs.com/penny/articles/481.aspx

Step 2 – Install any Customizations
Next you need to install any customizations such as custom or third party web parts, site templates (i.e. Fabulous 40 Templates)

Step 3 – Restore the Site Collection
Restore the site collection using STSADM’s restore command.

Step 4 – Migrate the site collection’s users
Next you will want to migrate the site collection’s user accounts to your internal accounts. This will ensure that user security, content ownership, and historical changes are maintained.

To migrate the users simply run the STSADM’s migrateuser command for each user.

NOTE: I later experienced an unexpected issue. While the migrateuser command moved user profiles, it did not update the mappings for the site collection administrators. Before you continue make sure you review and update the Site Collection Administrators group with valid internal accounts. If you don’t you will not be able to export the site collection or even run commands like Enumsites. The tools will return an Unknown User error because there is no longer a valid Site Collection Administrator.

Step 5 – Validate the site
Make sure that everything is the way it should be. Test your sites, review the content, and make sure that there are no other templates or pieces missing.

Step 6 – Install Patches
If it is not at the same level as your production server, install all of the Service Packs, Cumulative Updates, and KB patches to match your production environment. Most of those will require running the configuration wizard or pscofig afterward.

Step 7 – Backup the site collection
Run the STSADM’s backup command to export the content.

Step 8 – Restore the site collection to the production server
Restore the site collection using STSADM’s restore command.

SharePoint Saturdays

SharePoint Saturdays has been moving quickly through many US cities with lots of great presenters and discussions.

Here are a list of some upcoming events:

  • SharePoint Saturday Atlanta – April 18th, 2009
  • SharePoint Saturday San Francisco – April 25th, 2009
  • SharePoint Saturday DC – May 2nd, 2009
  • SharePoint Saturday Chicago – June 13th, 2009
  • SharePoint Saturday Charlotte– June 20th, 2009 Just Announced!

I plan on being at both the DC and Charlotte stops, and hope to get to know some more of the local SharePoint communities. These are free events so if you are even remotely in the area, be sure to check them out.

Admin Tool – SharePoint ULS Log Viewer

Recently while browsing CodePlex I came across a very useful tool that I wanted to bring to the attention to SharePoint administrators everywhere. The project is the SharePoint ULS Log Viewer which was built by Stefan Keir Gordon.

Here is an overview taken from the CodePlex info:

This is a WPF application powered by LINQ.

The current release (2.0) has the following features:

  • Parse and open multiple SharePoint ULS logs (will concatenate them if you select multiple)
  • Reorder and resize columns, sort on any column
  • Filter by Severity, Category, and Process or a custom text filter/search
  • Group multi-line stack traces into single log entries for easy viewing and copy/paste
  • View message easily in separate pane (No more scrolling in notepad)

I reluctantly admit that up until now I have relied on NotePad or TextPad to interact with my logs. I kept saying I would take the time to write something, but I just never got around to it. This tool is polished and full featured, so I definitely no longer have a need to develop anything.

Take a look; I’m sure you would agree. A big thank you to Stefan for contributing this to the community!

Using Site Columns to Reuse Data

During my time with SharePoint I have encountered a number of requests where users want to be able to reuse data between sites. Using the DataView or Content Query Web Part (CQWP) is pretty easy since it supports connecting to lists on other sites, but it does not help for situations where the requirement is to include a linked field within a list. Linked fields can only be configured to link to lists within the same site.

You can get around this limitation by using a Site Column to establish the link. The important thing to keep in mind is that the Site Column needs to be established at the same level as the column you want to link to. This means that the approach will only help with sites that are below the site that the Site Column is defined at.

For this example I have defined a contact list called CustomerContacts which is at the root of the site collection.

Then define a Site Column called MainCustomerContact that links to the Full Name field in the CustomerContacts list.

The next step is to add the new Site Column to a list on a sub-site.

After it has been setup you will now have the dropdown list when you go to add or edit a record in the list.

Fields with a value from the other site will display as a link, just like normal linked fields.

Clicking the link will lead you to the list’s item view with all of the details for that item record.

Using this method will help you reuse the data already being maintained in the system without having to duplicate the list or list data.

%d bloggers like this: