Monday, September 22, 2014

SharePoint 2013: NET 3.5 framework add feature error - the source files could not be found

Problem

The .NET 3.5 Framework feature can not be added to a new Windows Server 2012 build.  This problem is encountered during the build of a new SharePoint 2013 web front end (WFE):
No matter how the source disk is made available to the Add Feature wizard, whether using different network drives, mounting it locally, copying it to the local drive, etc., the error message is the same.  A similar message is encountered when attempting to add the .NET 3.5 feature via PowerShell script.  This is the first time you have encountered such an error building a new Windows Server 2012 instance for SharePoint 2013. You last successfully created a new Windows Server 2012 instance in July 2014.

Solution
  1. Uninstall KB2966827.
  2. Reboot.
  3. Add the .NET 3.5 Framework feature and all its subfeatures.
  4. Reboot
  5. Re-install KB2966827.
References
Notes
  • Many thanks to Steve at AskVG and to to my team's lead sysadmin for originally presenting and finding the solution to this vexing problem.
  • Steve indicates that three updates are the cause of this problem:
  • All of these updates are associated with the MS14-046 security update of August 12, 2014.  Only KB2966827 applies to Windows Server 2012.

Friday, September 19, 2014

SharePoint 2013: How to resolve missing list templates for MySites

Problem

You have deployed MySites to your farm.  Your users report that they are unable to create new lists and that the Custom List template is not available.  You investigate and find that this custom template and, indeed, nearly all of the usual templates you are used to seeing, are missing

Solution
  • Have your users execute the following steps on their MySites:
    1. Click OneDrive.
    2. Click the Settings "gear" icon
    3. Choose Site Settings.
    4. In the Site Actions group, click Manage site features.
    5. Scroll down to the bottom, and there you'll see the Team Collaboration Lists feature.
    6. Click its Activate button
      This instantly adds all of the templates you are used to seeing.
    7. Now go back to the Site Contents page, and you will see alot more templates available
References

Tuesday, September 16, 2014

SharePoint 2013: how to create a custom permissions level

Problem

A program manager who maintains an issue ticketing system wanted to enable her users to add new and edit existing tickets but not be able to delete them.  Essentially, she need to grant her users the Contribute permission but without the Delete option.  The solution needed for her was a custom permissions level.  This posting shows you how to make one.

Solution
  1. Connect to the appropriate website as a site collection administrator.
  2. Navigate to the top level site settings.
  3. Go: Users and Permissions > Site permissions.
  4. On the Permissions ribbon, click the Permission Levels button.
  5. On the Permission Level list, look for the Contribute.
  6. Click Contribute.
  7. Scroll to the bottom, and then look for the Copy Permission Level button. 
  8. Click this button.
  9. In the List Permissions group, look for Delete Items.
  10. Uncheck this permission.
  11. Click OK.  Your new custom permission level will be listed.
References
Notes
  • none

Monday, September 15, 2014

Systems Center 2012: updates are still listed after uninstalling software

Problem

SharePoint Designer had been temporarily installed to a farm server to meet a specific need and subsequently uninstalled.  However, Systems Center 2012 R2 still listed numerous Microsoft Office and SharePoint Designer updates needing installation. 

Solution
  1. Logon to the server as an administrator.
  2. Navigate to Control Panel, and then open Configuration Manager.
  3. Select the Actions tab.
  4. Select each of these actions in turn, clicking the Run Now and popup prompt OK buttons each time:
    • Machine Policy Retrieval & Evaluation Cycle
    • Software Updates Deployment Evaluation Cycle
    • Software Updates Scan Cycle.
  5. Click OK, and then wait about five minutes.
  6. On the Start panel, right-click and choose All apps.
  7. In the Microsoft Systems Center 2012 R2 group, click Software Center
References

Friday, September 12, 2014

SharePoint 2013: Table SPDistributedCacheCalls_Partition9 has XXX bytes that has exceeded the max bytes XXX

Problem

You see the following event appear in a SharePoint 2013 web front server application log:
Log Name: Application Source: Microsoft-SharePoint Products-SharePoint Foundation Date: [Date/Time] Event ID: 8319 Task Category: Usage Infrastructure Level: Critical Keywords: User: [Farm Service Account] Computer: [A farm web front end server] Description: Table SPDistributedCacheCalls_Partition9 has 461774848 bytes that has exceeded the max bytes 460175067 Event Xml: ...

This event appears in the application at about 5 minute intervals.  You then check the ULS logs and find the following:
Table SPDistributedCacheCalls_Partition9 has 461774848 bytes that has exceeded the max bytes 460175067
also appearing at about five minute intervals.

Solution
  1. Update usage events that you want to monitor
    1. Login to a farm server using the SharePoint Setup User Administrator account.
    1. Launch Central Administration.
    2. Go: Monitoring > Reporting > Configure usage and health data collection.
    3. Update the usage events you want to monitor. Unfortunately, there is presently (from my searching) no Microsoft article that clearly describes these events.
    4. Click OK.  The changes you make here will not be implemented immediately, as they are scheduled as jobs.
  2. Update usage event logging retention periods
    1. While still logged into the server, launch a SharePoint Management Shell with elevated privileges.
    2. Execute the command, Get-SPUsageDefinition.  This will list all of the usage events, whether they are being logged and their retention periods.
    3. Execute this command to set the retention period for a single definition:
      Set-SPUsageDefinition -Identity “[name of definition]” -DaysRetained [number of days]
      If you enter the display name of the usage definition, use quotes. If you use its ID, no quotes are necessary.  For example, changing the retention period for the Task Use definition:
    4. Execute this command to set the retention period for all usage definitions at the same time:
      Get-SPUsageDefinition | ForEach-Object {Set-SPUsageDefinition -Identity $_.name -DaysRetained [number of days]}
      For example, to change them all to 7 days:
  3. Force changes to be implemented promptly
    1. Back in Central Administration, go: Monitoring > Reporting > Configure usage and health data collection.
    2. Scoll down a bit and look for Log Collection Schedule.
    3. Click this link.
    4. Click on a job definition listed here, then click on its Run Now button.  Repeat this for the second job definition.  Even this will not put your changes into affect immediately, but will force the job to run after the current job is completed.
References
Notes
  • When I experienced this error for my production farm (400 users), it was sufficient for me to configure usage definitions like so in order to resolve this error:

SharePoint 2013: Workflow not working after installing August 2014 PU

Problem

After installing the August 2014 public updates to a SharePoint 2013 farm, some users reported that when they clicked on the Workflows link for a list or library item, they were navigated to the usual "Sorry..." page rather than the Workflows page.  A workflow designer also reported that she could not longer create 2013 workflows.  Curiously, 2010 workflows (legacy workflows migrated from 2010) continued to work and 2010 workflows could still be created in SharePoint Designer 2013.

Solution
  1. Install  hotfix KB2880963, per the Microsoft TechNet article, Install a software update (SharePoint 2013)
  2. On the application server hosting Workflow Manager 2013, stop and restart these services:
    1. Service Bus Gateway
    2. Service Bus Message Broker
    3. Workflow Manager Backend
  3. Lastly, restart IIS on the WFEs.
References
Notes
  • After installing this hotfix on all of the SharePoint 2013 servers, you may find that running the SharePoint Products Configuration Wizard returns an error:
    Error: Some farm products and patches were not detected on this or other servers. If products or patches are missing locally...
    If this occurs, execute Get-SPProduct -Local on each of the machines identified in the error message.  It may take several minutes for this command to finish.
  • In Solution Step 2), above, I mention restarting workflow services.  It's not clear to me whether all of them need to be restarted, one or more of them, or maybe just restarting IIS, or some other combination of these.  Whichever the case may be, this is the combination I did to recover from experiencing an error clicking on Workflows for a list item, after installing the hotfix.  This approach worked for resolving this problem on both my development and production farms.

Tuesday, September 9, 2014

SharePoint 2013: VIEW PROFILE link on Search Popup displays Incorrect URL Encoding

Problem

When your users click on the VIEW PROFILE link, displayed on the popup when hovering the cursor over a search result, clicking the link navigates the user to a Sorry, something went wrong page.  When you inspect the URL for this hyperlink, you notice that it seems to include extra encoding:
...Person.aspx?accountname=DOMAIN%255CStephan%252EBren
You check other user profile hyperlinks at the site (eg, Modified By, etc), and these seem to use the standard encoding:
...Person.aspx?accountname=DOMAIN%5CStephan%2EBren

...Person.aspx?accountname=i%3A0%23%2Ew%7CDOMAIN%5Cstephan%2Ebren (claims-based)
Solution
  1. Perform the following steps on each web front end (WFE) server:
    1. Login under an account that is a member of the local Administrators group (I regularly use the SharePoint Setup User Administrator account).
    2. Using Windows Explorer, open up this location:
      C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\TEMPLATE\LAYOUTS
    3. Scroll down until you find these two files:
      • Search.ClientControls.debug.js
      • Search.ClientControls.js
    4. Copy these two files to another location as backup copies.
    5. Now, for each file, remove the function encodeURI( ...), but leave its argument.  This is the function causing the problems.  You want to leave its argument since it creates the appropriate URL.  To find them, just search for this function name.  Thus,
      encodeURI(Srch.U.ensureAllowedProtocol(STSHtmlDecode(str.value)));
      becomes
      Srch.U.ensureAllowedProtocol(STSHtmlDecode(str.value))
      There will be two such instances of this in each file. Do them both.
    6. Save the file.
    7. To detect the change in your browser, you may need to do CTRL+F5 to refresh the cache.  No IIS reset necessary: this is only a change in JavaScript library.
References
Notes
  • Thanks to Trevor Seward for identifying and resolving this.
  • I first tested in development farm, and then performed in production.  No issues experienced.  Simple to implement.
  • UPDATE 9/12/14: Trevor Seward reports that this has been resolved in the September 2014 CU.  Have not yet installed this so looking forward to verifying.

Thursday, September 4, 2014

SharePoint 2013: - Failed to launch sandbox process, SE_ASSIGNPRIMARYTOKEN_NAME and SE_INCREASE_QUOTA_NAME privileges are require

Problem

You review a SharePoint Server 2013 ULS log and see the following message in this log:
  - Failed to launch sandbox process, SE_ASSIGNPRIMARYTOKEN_NAME and SE_INCREASE_QUOTA_NAME privileges are require
You see other messages adjacent to this one also involving the sandbox process instantiation attempt.

Solution
  1. On the server generating this error, open the Services panel.
  2. Scroll down until you find SharePoint User Code Host, and then make a note of the identity used for running this service.  Let's call it spSvc for this posting.
  3. Launch the Local Security Policy panel.
  4. Open the tree at left to Local Policies > User Rights Assignments.
  5. Look for Adjust memory quotas for a process and check whether the security setting for this assignment includes spSvc.
    • If it hasn't been added, add it.
    • If you can't add it (ie, it's controlled by GPO), add this service account to the local Administrators group or request your systems administrator add it. 
  6. Now look for Replace process-level token and check whether the security setting for this assignment includes spSvc:
    1. If it hasn't been added, add it.
    2. If you can't add it yourself (ie, it's controlled by GPO), request your systems administrator add it.
References
Notes
  • SE_ASSIGNPRIMARYTOKEN_NAME: associated with Replace process-level token user rights assignment.
  • SE_INCREASE_QUOTA_NAME: associated with Adjust memory quotas for a process user rights assignment.
  • Members of the local Administrators group are granted many user rights assignments, including the Adjust memory quotas for a process, but not all.  Review your server's default user rights assignments to determine which are.

Tuesday, September 2, 2014

SharePoint 2013: Unable to reach Excel Calculation Services

Problem

You review a SharePoint 2013 web front end server's Application log and see the following:

Log Name:      Application
Source:        Microsoft-SharePoint Products-SharePoint Server
Date:          [date/time]
Event ID:      2159
Task Category: Unified Logging Service
Level:         Error
Keywords:      
User:          [app service acct]
Computer:      WFE
Description:
Event 5239 (Excel Services Application) of severity 'Error' occurred 13 more 
time(s) and was suppressed in the event log
Event Xml:
...

and

Log Name:      Application
Source:        Microsoft-SharePoint Products-Excel Services Application
Date:          [date/time]
Event ID:      5231
Task Category: Web Front End
Level:         Error
Keywords:      
User:          [app service acct]
Computer:      WFE
Description:
Unable to reach Excel Calculation Services 
http:/WFE:32843/92240077fe924bf7b5f2b90f344db871/ExcelService*.asmx.
Event Xml:

You then click the URL presented in the error message and see a Server Unavailable 503 error page:

Solution
  1. Launch IIS Manager
  2. In the Connections panel, expand the tree under the server.
  3. Select Applications Pools.
  4. Look through the list of application pools to find one that has stopped.
  5. Select it.
  6. In the Actions panel at right, click View Applications.
  7. Look in the Physical path column for an application having ExcelCalculationServer in its path.
  8. If you find this, start this application pool; otherwise, repeat this for the next stopped application pool until you find it.
  9. After the application is started, click on the URL again: this time you will see a server error, potentially dangerous request.  This is OK.
References
Notes
  • None