Tuesday, March 29, 2011

Microsoft Project Workspace Sites “Custom Commands” tab that allows users to link issues, risks, and documents to Project Tasks is missing

After SharePoint Project Server 2010 upgrade with SharePoint in August 2010, we found Microsoft Project Server (MPS) Workspace Sites “Custom Commands” tab that allows users to link issues, risks, and documents to Project Tasks is missing for ALL MPS workspace sites. We tried different ways to fix this without success and finally this has been identified as feature conflict issue with Microsoft. Here is the information and workaround in case you run into the same issue.

1.    Symptom:
After 2010 upgrade, SharePoint Microsoft Project Server users could not see “Custom Commands” tab on their workspace sites. As a result, users could not link issues, risks, and documents to project tasks. Here are the two screen shots show correct workspace site with “Custom Commands” tab and another on without the tab.

2.    Root cause:
After debugging this issue with Microsoft Project Server engineers, we finally identified there are a whole set of conflicts as the Microsoft Fab 40 appears to be just a slightly stripped down Project Workspace template (not sure how it ever got into the Fab 40…). The Fab 40 template impacting Project Workspace template is Project Tracking Workspace template that seems to have the identical feature IDs and GUIDs and “overwrite” the Project Server Project Workspace. Here is the information about this template name = projchange, language = 1033, template id = 75818. I did not verify the ID or GUIDs and you could check yourself if you have spare time. This is another Fab 40 issue added to our Fab 40 issue list with Microsoft lately.

3.    Workaround:
Since missing “Custom Commands” tab issue is caused by conflicting templates, we have tried the following way to work around the issues. The procedure is to uninstall the Fab 40 Project Tracking Workspace template and then repair Microsoft Project Server (MPS). We could not find a automate way and here are the manual procedures.

  • Retract the current ProjectTrackingWorkspace solution
           stsadm -o retractsolution -name ProjectTrackingWorkspace.wsp –immediate
  • Delete the current ProjectTrackingWorkspace solution
           stsadm -o deletesolution -name ProjectTrackingWorkspace.wsp
  • Run a repair on Project Server 2010
           Control Panel
           Programs and Features
           Select Microsoft® Project Server 2010 (® symbols pushes it down the list a bit)
           Click Change and then leave Repair selected on the dialog that appears and click Continue
           Wait for this to finish

  • At this point all the right files are returned to their right locations – but the features need to be installed and activated
  •  Install all the Project site features for 2010
           stsadm –o installfeature –name PWS
           stsadm –o installfeature –name PWSCommitments
           stsadm –o installfeature –name PWSCtypes
           stsadm –o installfeature –name PWSDocLibs
           stsadm –o installfeature –name PWSFields
           stsadm –o installfeature –name PWSIssues
           stsadm –o installfeature –name PWSRisks

At this point the Project Sites Collaboration Lists feature should show as active on all Project sites, and the Custom Commands should be visible and linking to tasks should be working and active.

4.    Remaining potential issues:
Now the Custom Commands is visible and linking to tasks should be working and active. We verified the existing sites created from Fab 40 Project Tracking Workspace template are also working fine without any issues. You would be able to use the default Microsoft Project Site template in place of the Fab 40 one you had used before for any new sites you require (and these needn’t be connected to projects).
However, there are two potential issues introduced by this workaround. The one is users would not be able to create Fab 40 Project Tracking Workspace template since it has been retracted. The second one is more serious since the existing sites created from Fab 40 Project Tracking Workspace template may not be upgraded since the template site definition has been removed. We are in the process to upgrade our SharePoint 2010 to latest CU and hopefully is April CU that has fixed many our MPS issues. We believe the worst case is we may need to reinstall the Fab 40 Project Tracking Workspace template before the upgrade and execute the same procedures as we described above to retract it again. What a wonderful Fab 40 Microsoft provided!

Monday, March 28, 2011

SharePoint 2010 content database dead lock after opening excel file with thousands of hyperlinks

We encountered a SharePoint database dead lock last week and this seems to be a bug on SharePoint database side. Here is the information that we found about this dead lock.

  1. Symptom of the issue -  After user opened an excel file or view the property of the file, the whole content database locked and users could not access anything inside this database on SharePoint 2010.
  2. Root cause - After looking closely on the actions that are causing this database dead lock, we identify there is a Microsoft excel file contains over 40,000 entries that are hyperlinks to other system. This could be just http://www.google.com. When users open the file or view the property of the file, this will cause the whole content database locked. When we track the issue, we isolate the call to the SQL server listed below is the root cause that triggers the dead lock.    

<?query --
        Links.TargetDirName AS LinkDirName,
        Links.TargetLeafName AS LinkLeafName, Links.Type AS LinkType,
        Links.Security AS LinkSecurity, Links.Dynamic AS LinkDynamic,
        Links.ServerRel AS LinkServerRel, Docs.Type AS LinkStatus,
        PointsToDir AS PointsToDir, NULL AS WebPartId, NULL AS LinkNumber,
        NULL AS WebId, NULL AS Search, NULL AS FieldId
        TVF_Links_PId_DId_Lvl(@DocSiteId, @DocParentId, @DocId, @Level) AS Links
        AllDocs AS Docs WITH (INDEX=AllDocs_Url)
        Links.ServerRel = 1 AND
        Docs.SiteId = Links.SiteId AND
        Docs.DeleteTransactionId = 0x AND   
        Docs.DirName = Links.TargetDirName AND
        Docs.LeafName = Links.TargetLeafName
        Docs.DirName AS LinkDirName,
        Docs.LeafName AS LinkLeafName, Links.Type AS LinkType,
        NULL AS LinkSecurity, NULL AS LinkDynamic, NULL AS LinkServerRel,
        CAST(128 AS tinyint) AS LinkStatus,
        NULL AS PointsToDir, NULL AS WebPartId,
        NULL AS LinkNumber, NULL AS WebId, NULL AS Search, NULL AS FieldId
        TVF_Links_TargetUrlNotPointsToDir(@DocSiteId, @DocDirName, @DocLeafName) AS Links
        TVF_Docs_CI(Links.SiteId, Links.ParentId, Links.DocId, Links.Level) AS Docs
        Docs.DirName AS LinkDirName,
        Docs.LeafName AS LinkLeafName, Links.Type AS LinkType,
        NULL AS LinkSecurity, NULL AS LinkDynamic, NULL AS LinkServerRel,
        CAST(128 AS tinyint) AS LinkStatus,
        NULL AS PointsToDir, NULL AS WebPartId,
        NULL AS LinkNumber, NULL AS WebId, NULL AS Search, NULL AS FieldId
        TVF_Links_TargetUrlPointsToDir(@DocSiteId, @DocDirName, @DocLeafName) AS Links
        TVF_Docs_CI(Links.SiteId, Links.ParentId, Links.DocId, Links.Level) AS Docs


     This query is coming from SharePoint OOB stored procedure “proc_GetLinkInfoSingleDocInternal” which is called from “proc_FetchDocForRead”. This stored procedure is invoked to request the
metadata information and document stream of a document. We are still working with Microsoft to identify the solution and submit a potential bug fix.

    3. Workaround - After we identify this issue is caused by the so many links of the excel file, we were able to remove the links inside the file and upload the file to SharePoint again. This seems to resolve the issue at this time. However, we lost the links inside the file. We did not test the threshold of number of links inside one file that would cause SQL content database dead lock.

With new SharePoint 2010 BI capabilities, more SharePoint users are using BI tool such as excel services. We would expect the much larger excel files with more links inside. Before Microsoft resolves this issue, please be careful the number of links inside a single excel file.

Friday, March 11, 2011

Why SharePoint 2010 Web Analytics "Top Browser" report does not record IE 8 browser?

After we Web Analytics reports to SharePoint 2010 sites, we have identified several issues. I have listed in SharePoint Web Analytics Service insight part II – Reports deep explore and issues. One of the issues is I’m not able to see IE 8 browser been reported in Web Analytics "Top Browser" report to the site I owned and I am use IE 8 all the time to access it. See the following screenshot for issue details. I have noticed IE 8 has been recorded on some other sites.

We have reported this issues to Microsoft and finally we identified this is a IE 8 issue NOT SharePoint issue. The issues is the IE 8 with “Display intranet sites in Compatibility View” setting does not send correct header information to SharePoint. It send itself as IE 7 and as a result, the Web Analytics "Top Browser" report will record as IE7.

Here is the way to fix it. From IE 8, go to Tools->Compatibility View Settings and  deselect “Display intranet sites in Compatibility View”. See the screen shot below.

This will allow IE 8 to send correct header to SharePoint and Web Analytics "Top Browser" report can record IE 8 access.

Wednesday, March 2, 2011

Access denied while adding items to a list when user has contributor permission to list on SharePoint 2010

After sites upgraded from 2007 to 2010, we have identified access denied issue while adding items to a list for users having contributor permission to list but not to the site.  This has been identified 2010 out of box behavior. We are working with Microsoft to see whether any future fix could be provided.

Here is the summary of the issue and please let us know if the workarounds provided work for you.

  • Issue summary – Users with contributor above permission to the list ONLY but with no additional permissions to the parent site get access denied error when adding an item
             Example list URL                        http://sharepoint/sites/site/subsite/AllItems.aspx
            Steps to reproduce this:               Add a user as contributor or above permission to the list but do not give other permissions to the site contains the list. User can see “Add item” link but will get “Access Denied” error when adding any item

  • Root cause – This is 2010 behaviors and we are working with Microsoft to submit as a bug
There are two conditions combined that will cause this error on the list
  1. The List "Title" column is a "Calculated Column". Example is =TEXT(WEEKDAY("7/1/10"),"dddd")
  2. Users are given contributor above permission ONLY to the list but no other read above permission to the site contains the list

  • Workarounds – There are several and the following two may have least impacts
Option #1:   Add Read permission to users on the parent Site containing the list. No need to add permission to other parent sites.
Option #2:  Change the  "Title" column to be a Text value rather than a "Calculated Column"  for the affected list

If option #2 is not acceptable and you need to select option #1, users will have additional permissions to read other information on the site beside the list. Although this has been identified as Microsoft big, it may take time to be fixed in future releases.

Access denied issue while editing the default site pages after migration to Sharepoint 2010

After sites migrated from SharePoint 2007 to 2010, you may find some site owners with full permission could not edit the default page. The error is as below.

We had about half dozen sites that were having such issue after 2010 upgrade in August. We were able to track down the problem keeping our “Full Control” users from editing pages.  The problem is a lack of permissions on the associated site libraries after the migration. Specifically, the Master Pages library. We were not be able to identify how but here is the solution to fix it.

Go to Site Actions –> Site Settings -> Master pages and page layouts -> “Library” tab from ribbon -> “Library Permissions” button at the top, right ->
Add the users or group to permissions here with at least Read access enabled.

Now, owner groups will have the permission to edit the pages.

Tuesday, March 1, 2011

Lessons learned and pitfalls to avoid during SharePoint 2010 extranet architecture design

After we upgraded our SharePoint 2007 to 2010 in August 2010, we were very aggressive to implement SharePoint extranet based on the latest technology Microsoft provided. However, there are several majors issues found that has changed our design several times. As a result, our SharePoint 2010 extranet scheduled has been dramatically impacted. This post will listed the lessons we learned so you could avoid some pitfalls during your extranet implementation.

  1. First lesson is you should not be optimistic and greedy on Microsoft latest SharePoint technologies for extranet implementation. During extranet implementation, ADFS was brought to our attention and it seems like an excellent solution for internal and external SharePoint. We have spend almost two months to successfully setup the ADFS and convert all window based authentication to ADFS claim based authentication on a non production environment. However, we have identified dozen major issues that some of the out of box SharePoint functions will not work as it is. There is no clear roadmap from Microsoft to clear identify the roadmap to resolve those. One example is audience targeting is no longer working based on usersSeveral services need C2WTS services to work. BCS can not use C2WTS service and you could not setup BDC through designer. Of cause, we have identified workaround on some of  the issues identified that will be posted in the near future. Another information you should know is ADFS 2.0 is NOT supported for ForeFront UAG at this time. You have to dowgrade ADFS to 1.0 if you plan to use UAG now. Based on Microsoft insider that it should be supported around September 2011.
  2.  Second lesson is you should pay extra attention connections and ports used between SharePoint each servers and contact your security and network team to evaluate the Microsoft extranet topology before final architecture design. We had originally evaluated both Split back-to-back optimization for content publishing and edge firewall architecture. It seems the first one make sense not pay additional license for Forefront UAG license. However, if you looked at the Microsoft extranet topology, the notes are sending us to the discussion with corporate security and network teams. The significant note is it requires a one-way trust relationship in which the perimeter domain trusts the corporate domain.  This immediately brought attention from the security team since this is not allowed in our company policy.In additional, the front servers in DMZ also need to connect to internal AD for internal users and SQL server for search crawling! There will be multiple ports need to opened besides the one-way domain trust. You should check with your security team on the policy and avoid such pitfall.
  3. Third lesson is you would need to double check the cost of the extranet implementation based on different architecture. At beginning, we did not select edge firewall architecture since it will require Forefront UAG license and Forefront UAG SharePoint extranet adapter license in additional to WFE extranet adapter and SQL extranet license. You will need to check cost if you need additional servers and any third party server based license cost.
Well, after all these discussions, we are back to the edge firewall architecture and is working with finance team to approve the additional cost needed for the hardware and software.

Please check back to see our progress and good luck with you implementation.