Getting WebDAV to work for Windows Network Providers against SharePoint 2007

The picture is not entirely complete here, but I made a lot of progress with this as an open (now closed) troubleshooting ticket with Microsoft.

The short summary is that using a Microsoft whitepaper (linked to below), I could get Windows XP SP2 workstations to work properly opening an Explorer View to a SharePoint 2007 farm’s document library, I had a bunch of other problems to surmount when trying to get a Windows Server 2003 SP2 system to do the same. The rest of this post is about other methods for troubleshooting and fixing the situation.

Continue reading Getting WebDAV to work for Windows Network Providers against SharePoint 2007

Kerberos and SharePoint 2007 notes

Recently we had cause to do a whole lot of research ourselves and end up calling Microsoft to get our implementation vetted and troubleshot (it was not working – all or almost all connections that should have been Kerberos connections were degrading back to NTLM).

Here are the salient notes and facts about troubleshooting and achieving the ultimate goal (having Kerberos working with our systems).

MOSS 2007 – Setting up a Search Center as a subsite to a Team Site-based Site Collection

Creating a Search Center as a subsite Search Center for a Team Site site collection didn’t seem to create or properly hook up a People Search Results page within that Search Center for the People Search Scope. Doing a People search after having ONLY created a Search Center and set the Site Collection to use it for “richer results” comes up with an HTTP 404 error on the People Search results page.

Here’s how to create that full functional pipeline WITHOUT SharePoint Designer (to create the people search results page where SharePoint’s expecting it to be), thank you very much.

This may help you with defining additional site scopes and dedicated landing pages for their results too, assuming you also have a Search Center deployed.

WARNING: If you do this, you will end up renaming the Home tab in your horizontal nav bar to whatever your top level site’s name is, and the only way to get it back (short of SharePoint Designer) will be to disable the Office SharePoint Server Publishing Infrastructure feature at the Site Collection level. This may be okay with you and your users or not, depending on how much tweaking you intend to do through that feature/interface.

  1. (Optional) Create Site Collection with Team Site top level site. Do this if you just want to proof it out. Otherwise, if you already have a site collection you want to do this with, start at steps 2 or 3 below, depending on what you’re starting with.
    1. Do this operation in the Application Management tab of Central Administration.
    2. Under the SharePoint Site Management section, click the “Create site collection” link and follow the prompts from there.
  2. (Optional) Create Search Center Subsite (w/o Tabs). This assumes you haven’t already got a Search Center subsite or site collection to work with.
    1. Do this operation within the top level site you just created. This may work in other contexts too, but I have not tested those.
    2. Choose the “Search Center” option under the Enterprise tab when choosing a site definition.
    3. I chose not to list the subsite in the Quick Launch, but I did choose to list it in horizontal navigation and to use the parent site’s horizontal navigation. If you choose different settings, know these may affect your site collection’s behavior.
  3. Assign Search Center as Search Center target for top level site.
    1. Do this operation within the top level site you just created.
    2. Go to Site Actions -> Site Settings, then click Search settings under the Site Collection Administration section all the way to the right.
    3. Provide the path starting with the end of the FQDN to the search center’s simple URL (e.g. if the top level site iat, then input /sites/tls/sc into the textbox.
    4. Click OK button.
  4. NOTE: If you’re starting with the same assumptions I am and you test the People search scope now, you should receive a 404 error, regardless of whether your crawls are working. This indicates the lack of a proper results web part page for the results to go into.
  5. Enable Office SharePoint Server Publishing Infrastructure Feature and Office SharePoint Search Web Parts Feature (not entirely sure this is required) on Site Collection.  (Enabling the first feature here will change your Home Tab in horizontal navigation to the Top Level site name.)
    1. From top level site, choose Site Actions -> Site Settings.
    2. In Site Collection Administration section, click the “Site collection features” link.
    3. Click “Activate” button to right of Office SharePoint Server Publishing Infrastructure Feature item.
    4. Click “Activate” button to right of Office SharePoint Server Search Web Parts Feature item.
  6. (Optional) If you don’t want the potentially confusing changes to the Site Actions menu to impact the top level site, immediately disable the Office SharePoint Server Publishing Feature on the top level site.
    1. In the top level site, go to Site Actions->Site Settings->Modify All Site Settings.
    2. Under the Site Administration (NOT the Site Collection Administration) section, click the “Site Features” link.
    3. Click the “Deactivate” button to the right of the Office SharePoint Server Publishing Feature item.
  7. (Optional) Enable Office SharePoint Server Publishing Feature on Search Center Site. You may not have to do this, as it may be auto-enabled when the Site Collection Features are enabled. An easy way to tell whether this feature is activated on a site or subsite is by looking at the Site Actions menu. If it’s just 2 or 3 items (depending on the page you access it from): Create, sometimes Edit Page, and Site Settings, then you know this feature is not enabled. If instead it’s a huge menu with multiple fly-out submenus, then you know the feature is already enabled on that site.
    1. Go to Search Center site.
    2. Click Site Actions -> Site Settings and in Site Administration section, click Site features link.
    3. Click “Activate” button to right of Office SharePoint Server Publishing Feature.
  8. Create new page in Search Center for People Search Results.
    1. Click Site Actions -> Create Page
    2. Create a page called peoplesearchresults.aspx. Save it where the dialogue lets you save it. Probably Pages/*.aspx.
    3. Choose the “(Welcome Page) Blank Web Part Page” Page Layout.
    4. Click “Create” button.
  9. Add appropriate People Search result web parts to new page.
    1. On created page, if not already in page edit mode, choose Site Actions -> Edit Page
    2. Add appropriate web parts, put them on the page in appropriate places and modify their web part settings to suit. I chose:
      • Header: People Search Box
      • Center: Search Statistics, Search Paging [1], Search High Confidence Results, People Search Core Results, Search Paging [2]
      • Center Right: Search Best Bets
    3. Click Publish button to finalize edits to web part page.
  10. Edit Search Scopes on Site Collection.
    1. Go to your top level site.
    2. Choose Site Actions -> Site Settings.
    3. In the Site Collection Administration section, click “Search scopes” link.
  11. Copy “People” Search Scope (default) to a copy for the Site Collection.
    1. Use drop-down menu on “People” Search Scope and choose “Make Copy”
  12. Edit the “Copy of People” Search Scope to set proper results page URL and change name (can’t just be “People” as that name’s already taken).
    1. Use drop-down menu on Copy of People and choose “Edit Properties”.
    2. Click “Change scope settings” link on next page.
    3. Change Title to something descriptive that isn’t “People”.
    4. Enable or Disable the Display groups you want for this scope.
    5. Specify the target results page you just created. Start relative url at the search center’s root. So if, for example, the search center is at and your results page ias at, use the value “/Pages/peoplesearchresults.aspx” in the Target results page textbox.
    6. Click the “OK” button.
  13. Remove default “People” Search Scope from Site’s selectable scopes.
    1. Go to the Search Scopes settings page in the top level site (Site Actions -> Site Settings -> Site Collection Administration -> Search Scopes)
    2. If you’re using default Display Groups, you should have “Search Dropdown” and “Advanced Search”
    3. For each display group click the hyperlinked name of the group in the grey bar, labelled “Display Group” (e.g. for Search Dropdown, click the hyperlinked Search Dropdown in the phrase “Display Group: Search Dropdown (3)” (or some other number) in the grey title bar just above the list of scopes active for that display group).
    4. In the Edit Scope Display group page, uncheck the Display checkbox to the left of the People scope name.
    5. Click the OK button.
    6. Repeat this for any other applicable Display Group you have in Search Scopes.
  14. Let your crawls happen. The settings you made won’t be reflected in your sites until after the next crawl. If you have access to the SSP, you can reinitiate crawls to try to rush the process and make it happen immediately.
  15. Retest. Hopefully you’re all hooked up now.
  16. If everything is hooked up and you don’t want the publishing infrastructure and you want your Home tab back, you can now disable the Site Collection feature.
    1. Go to your top level site. Go to site settings (Site Actions -> Site Settings).
    2. Under the Site Collection Administration section, click the “Site collection features” link.
    3. Click the “Deactivate” button to the right of the Office SharePoint Server Publishing Infrastructure Feature.

If not, don’t come crying to me!

Actually, I’ll be happy to try to help, but keep in mind that I don’t have a lot of spare time.

DCOM 10016 errors

Because my systems admin reminded me while cleaning out the logs for our new load test environment, here’s how you can fix them on your WSS box.

This is something an old colleague and I found out in October of last year, found on a blog entry from Søren Nielsen from April of last year.

It involves fixing your Component Services configuration on the offending server, but it’s not too hard.

“Unknown Error” and OOTB SharePoint 2007 builtin Workflows

If you are playing with Approval workflows, and you find that your workflows are erroring out even when you think it should have completed successfully, make sure you aren’t in a situation where you’re updating the approval status without having the approval functionality of your document or workflow library enabled.

It’s all built-in, but it doesn’t all automatically enable itself on need.

I ultimately found my answer on SharePoint Blogs, but my discovery route was circuitous.

First, the Unknown Error statuses on my workflow status page for the workflow. These workflows would error out and require termination from the workflow status page so they’d stop contributing to my active workflow counts. Searching around, I found out (look at Eilene Hao’s response to Misha) that you can get more info about these by going to where your Diagnostic Logs are kept. Find out where those logs are kept by going to SharePoint Central Administration, Operations page/tab, then under the Logging and Reporting section, click the link to Diagnostic Logging. On the next page, you’ll find out where those logs are under Trace Log.

Go to that directory in your front end web server(s) and use a decent directory search/grep (I used Textpad I have installed in portable mode on a USB key) to find log files with the word “workflow”. Upon doing that, I found the string/error, “System.ArgumentNullException: Value cannot be null. Parameter name: name”. Googling eventually led me back to the SharePoint Blogs post above.

So the fix is that if you’re going to use an ootb (out of the box) builtin workflow that updates the approval status of an item, you should also enable the “Require content approval for submitted items?” option in Versioning Settings for the list settings. This will do a lot of things automatically for you:

  • When a list item is changed, the approval status for the item gets automatically changed back to “Pending”.
  • When a person with the permission level to approve items looks at the list, they get a special view option called “Approve/reject Items”. (So they can bypass the approval workflow)
  • The workflow that updates approval status stops erroring out.

It’s all pretty cool, but you have to know how it all hooks together.

SharePoint 2003 Reader Permissions include… Export to Spreadsheet!

I had to find this out for a customer this morning.

It’s true: Being able to read something means they’re okay with exporting to a spreadsheet. We may need to “Lock this down” but all I can think of is to use javascript to hide the control, which is not really locked down per se.

Dev VM Farm Notes

Had a similar problem to this one, wherein the SharePoint Timer service appeared to be screwing around with my app pool settings for my SSP web application.

Not entirely sure what caused it (because I wasn’t taking notes – trying to set this one up quickly) but I found the problem while trying to set a trusted location for Excel Services.

The big bold black “Service Unavailable” kept balking me. I kept double-checking passwords (I only use one password in Dev environments), Web Application Policies, the Server Farm Administrators’ group and AD Security Group memberships to no avail.

For me, trying to set a new App Pool and App Pool Identity didn’t in fact work when trying it with IIS Manager. The Timer Service appeared to keep messing me around.

What did finally work was using the Service Accounts settings in Operations Manager of SharePoint Central Administration.

Getting Partial and Complete Full Farm backups to restore properly on 2007

This is my research today/this week, until I get it working and properly documented, at least on our configuation traking Wiki.


Colleagues have alluded to “The GUID Problem” wherein if you don’t take a site collection’s content database offline before restoring a copy of it to the same farm, you’ll get errors because the GUIDs will match and confuse SharePoint, so the recommendation there is that if you have retroactive data you wish to restore to a different web application/site collection while maintaining your main branch on a prod server, try instead to stand up an entirely different farm, restore to that farm, then use stsadm with the -o export operation to backup the content and then restore it again on Production.

Or better yet, don’t fiddle with Production!

Anyhow, here’s the steps I am going through to get this to work. Again, my situation is that I’m just trying to verify that a full farm backup can have part of its content (one web application’s site collections) restored somewhere else if need be.

  1. Take the full farm backup with either stsadm -o backup -directory \\UNC\path\ -backupmethod full - url http://mossdev1/ or via the Central Administration UI to do the same thing (left as exercise to reader). (Note, you need to make sure that the service account that’s running your instance of SQL Server for the back-end has write access to the filesystem/UNC Path you provide during the backup setup steps.)
  2. Copy the xml files and directory tree generated to a new farm for restore. Share this directory to make sure it has a valid UNC path. Make sure your SQL instance Service Account has full access to the share/UNC path.
  3. Check to make sure there are no failed Job Statuses for Backup/Restore on your target (restore) farm.
  4. Locate the directory where you want to/already store SQL database files (your SQL admin may already have placed this somewhere else on the server or it may go to the default: C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data. Make sure you’ve got proper permissions to write to that directory (I used a very high-level account, permissions-wise, to request the restore, and made sure that it had write permissions to the directory, but am not entirely sure that’s the correct account to configure – need more research here.
  5. Restored part of full farm (only one web application: http://mossdev1:44444/ and one Content Database: WSS_Content_Database).
  6. Because the security model was completely different for the target server from the source server, went into SQL 2005 Management Studio, connected to the proper instance, and found the Content Database (to make sure it was properly restored), opened the AllDocs table to make sure data was in there, and then edited the SQL instance’s logins to make sure that the Farm Service Account had proper rights to access the Content Database (I gave it dbo rights on the database, but you can probably get away with User rights specifically granting Connect rights within the database in question).
  7. Because the host name of the Web Application I restored is different from the VPC’s hostname, make sure that IIS recognizes the proper host header, and that you have DNS or hosts file entries that map to the proper IP address. Go into the IIS Manager, right click the Virtual Server that corresponds to the Web Application you just restored. Click the Advanced button in the Web Site Identification control group on the Web Site tab. In the pop-up box, click the entry for your port, click the Edit button, and add the proper host header value(s) to the Host Header Value text box. If you are changing DNS records, be sure to create an A and a PTR record. If using hosts files, just go to C:\WINDOWS\system32\drivers\etc\ and edit that file!
  8. Because the fact of the different security model probably kept the Content Database from being properly attached to your Web Application, go back and do that manually. Go to Central Administration, choose Application Management. Then choose the Content databases link under the SharePoint Web Application Management section. Click the Add a content database link in the title bar. On the next screen, specify the database server/instance, database name and you can probably leave the other fields at their defaults (unless your organization specifies other settings).
  9. Because of the different security model, you’ll also need to add your current login account to the Web Application’s policy. Do that now. From Central Administration’s Application Management area, choose Policy for Web Application (Under the Application Security section). Click Add Users, then make sure you’ve got the right web application and click Next. Specify the user(s) you wish to have Site collection administration, choose Full Control and click Finish.
  10. Now try out your site restore by going to the URL it should be at. If you’re not sure about that, check out your Site Collection List under Application Management for that Web Application.
  11. If you have any other issues, you may be on your own, because honestly that was enough problems to surmount for me today! 🙂

MOSS 2007 server farm architecture links

All in all, it looks like MOSS 2007 server farms consist of:

  1. Front End Web Servers – (low storage, hosting IIS, SharePoint and any custom web parts/custom site definitions/templates – this is a guess)
  2. Application Servers – (high storage, hosing IIS, SharePoint and indexes for search – again a guess)
  3. Database Server – (hosting the content and configuration databases)

Sounds like MOSS 2007 is in general way more flexible and configurable in Server Farms than SPS 2003 (with its three major themes of “supported configurations”).

Don’t miss all the planning you should be doing vis a vis Server Farm Architecture as you design your environments:
Planning worksheets for Office SharePoint Server 2007

Also, the configurations of the Shared Service Provider(s) give you a lot of flexibility.

Unfortunately, it looks like most of the Technet articles are still TBD (to be written), but I found one that was decent:
Determine hardware and software requirements (Office SharePoint Server)

Also, my Systems Engineer homie at my workplace sent me a lot of very interesting seeming audio-briefing links:
TechNet Events: Supporting Materials