Q: If I add multiple site directories which one will be the default for the “Create site” action?

A: The first site directory site created will be the default. You can change it in the top level site of your site collection in Site Actions / Site settings / Site directory settings. You need to enter the relative url of the new default site directory.

Q: I have multiple site directories in my farm in multiple site collections. Is there an out of the box feature to consolidate all of these site directory entries into a single  true “Master”  site directory. That should contain all site directories and all subsites and external sites added.

A: There is no such feature. You can create a timer job which uses the changetoken on the lists to synchronize all site directories into a single one but you have to be strict about the custom columns and choice values set in the various site directories throughout the farm to be able to consolidate them into a single one.

Q: Will stsadm  export / import affect Site directory operations?

A: Yes, import will create new GUIDs for all subsites and the GUIDs in the rootweb’s property bag will point to non-existing subsite. To fix this after the import you need to open the top level site of your site collection then Site Actions / Site settings / Site directory settings. You need to enter the relative url of the new default site directory after the import. If the relative url did not change ( same relative url in a different web application ) you just need to press OK to save the new GUID. This behavior of skipping updating web GUIDs in property bags during import is by design.

Q: Can I add more categories or other fields to the site directory form? Is it customizable?

A: Yes. Read the my customization post for details.

Q: What kind of column types are supported for the form?

A: Simple choice columns will be rendered as drop down list. Multiple choice column will be rendered as checkbox list. Lookup columns (single or multi valued ) will be rendered as drop down list. Boolean columns will be rendered as a single checkbox. For all other types it will be a simple textbox.

Q: Will the form be rendered for users who has no rights to write to the Site directory and their attempt is set to a failure?

A: Local site directory case : The form will not be displayed for a user with no rights on that web or list. However if the current user has view rights, the form will be displayed. During site creation the user will get an access denied page if he/she selected to add the subsite to the site directory  and an error will be logged to ULS if the Site Directory category trace level is High or above:

CreateSitePanel1: An exception occured in OnFormSave(). Exception: System.UnauthorizedAccessException: Access is denied.

The subsite will be created without a template. User will be presented with the “Select template” page on first access which indicates that subsite provisioning was not complete due to the access denied error in site directory.

If MOSS 2008 December rollup or later is installed (including MOSS SP2) and the default local site directory is used, the current user’s permissions are checked against the Sites list. Expected permissions: AddListItems, EditListItems, ViewListItems

For the master site directory security is checked for the application pool account and not for the current user. If the app pool account has no read rights on the web and the list, the form is not displayed. You can see an exception in ULS:

“CreateSiteCollectionPanel1: An exception occured in Site Categories panel. Setting CreateSiteCollectionPanel1 to not render. Exception: The request failed with HTTP status 401: Unauthorized”

If the app pool id user has read rights on both web and subweb but no write permissions, no error messages will be generated for the user, the new site collection won’t be added to the master site directory, all webservice calls finish with 200 OK but in ULS with Medium or above trace level for Site Directory category you can spot the error:

Adding site directory item with title of "team1" completed: <Results xmlns="http://schemas.microsoft.com/sharepoint/soap/"><Result ID="1,New"><ErrorCode>0x80070005</ErrorCode><ErrorText>The operation failed because an unexpected error occurred. (Result Code: 0x80070005)</ErrorText></Result></Results>

0x80070005 is access denied.

Q: How can I troubleshoot site directory problems?

A. Enable Site Directory ULS log category logging on Verbose trace level. Look for “Site Directory” entries after you reproduced the problem. For master site directory problem look for “CreateSiteCollectionPanel1” and “GetSiteDirectoryListInfo” tokens in your log and read the corresponding post to get more details how it works and at which step you need to start. Verifying IIS logs for the master site directory website is a good place to start to verify authentication and the webservices mentioned in the post.

For local site directory you need to look for “CreateSitePanel1” and check things with powershell, details in the corresponding post.

Back to the table of contents