Monthly Archives: Jan 2015

SharePoint 2010 and IE10

Following on from my previous post relating to setting problems with the setting of the master page content type to a value other then IE=8, I found some more useful information. The post I read actually referred to a problem with Silverlight following someone changing the content type to IE=Edge, so I wondered if the same solution was true. To read the original blog click here.

The originally released version of ASP.NET 2.0 (which SharePoint runs ontop of) contains a bug in the ‘browser definition file’ which reads the UserAgent HTTP header sent by user’s browsers to detect what browser the user is using. It can’t interpret the new UserAgent string sent by IE 10. This has the knock-on effect that SharePoint also doesn’t know what the user’s browser is, hence all the JavaScript problems.

Solution

First of all, check that this is indeed the problem in your environment by firing up IE 10, press F12 to bring up the developer tools, and force the User Agent string to IE 8.

All we need to do now is apply the hotfix to ASP.NET which updates the browser definition files (see KB2600100).

correlation 951335c3-feed-427a-b1c3-79bc2d1e0b7f

I was using the Amreim Twitter web part quite happily when suddenly they stopped work in the middle of January 2015. On checking the Amreim site I found I was not the only one. After a few days the recommendation was to change the supported doc type in the SharePoint masterpage from IE-8 to a higher version (I chose IE-edge). This was necessary because Twitter removed support for older IE versions in an update. The good news was that my Twitter feeds started showing up on my intranet page again. The bad news was that many simple operations – adding users to groups etc resulted in a correlation error (). On checking the logs it referred to not knowing about the xsd element. On Googling that I found that it was related to SharePoint not handling the move to IE-edge properly. My current work around is to do the admin tasks using FireFox, Chrome or Safari while I determine the best setting for the Twitter feeds to work and the error to disappear. I’ll update at some point.

Unable to open Document Library in Explorer View

If you are unable to open document library in Explorer view follow these steps:

(your client does not support opening this list with windows explorer)

  1. Add your site as a trusted site list in your Browser tools option
  • Start Internet Explorer.
  • On the Tools menu, click Internet Options, and then click the Security tab.
  • Click Trusted sites, and then click Sites.
  • In the Trusted sites dialog box, type the URL (http://servername:port) of your site in the Add this website to the zone box, and then click Add.
  • Click Close, and then click OK.
  1.  Make sure the Web client service is Started.
  2. If your are using the server as a client then install Desktop Experience Feature (from Server Manager add the feature and then re-boot)

Removing features from a content database in SharePoint 2010 using PowerShell

The great thing about the Health Analyzer in SharePoint 2010 is that it will report on a number of potential issues with the server farm, which may cause a problem later whilst applying a cumulative update or service pack. Resolving these issues in advance will help to prevent an update failing when you run the SharePoint Configuration Wizard.

One of these problems may occur when a solution is removed from the farm before the corresponding features were deactivated from site collections and sites. The Health Analyzer will place this issue in the “Configuration” category with the title “Missing server side dependencies”.

The error message reported will look similar to this one:

[MissingFeature] Database [WSS_Content] has reference(s) to a missing feature: Id = [d3fc1457-1a7b-46b1-a049-1fbef0db7415], Name = [AE Documents Rollup Web Part], Description = [Rolls up all new site Documents], Install Location = [AEDocsRollupWebpart]. The feature with Id d3fc1457-1a7b-46b1-a049-1fbef0db7415 is referenced in the database [WSS_Content], but is not installed on the current farm. The missing feature may cause upgrade to fail. Please install any solution which contains the feature and restart upgrade if necessary.

As shown above, this message reports a content database name (WSS_Content) and feature ID (d3fc1457-1a7b-46b1-a049-1fbef0db7415), but not the sites or site collections where the feature exists. In addition to this, even if you did know where the feature was activated, it will not appear anywhere in the UI for you to deactivate because the solution has been removed from the farm.

Using the PowerShell script developed by Phil Childs (http://get-spscripts.com/2011/06/removing-features-from-content-database.html) you can not only locate the feature in the farm but also remove it permanently.

Open PowerShell in Admin mode and paste the following:

Add-PSSnapin -Name Microsoft.SharePoint.PowerShell

function Remove-SPFeatureFromContentDB($ContentDb, $FeatureId, [switch]$ReportOnly)

{

$db = Get-SPDatabase | where { $_.Name -eq $ContentDb }

[bool]$report = $false

if ($ReportOnly) { $report = $true }

$db.Sites | ForEach-Object {

Remove-SPFeature -obj $_ -objName “site collection” -featId $FeatureId -report $report

$_ | Get-SPWeb -Limit all | ForEach-Object {

Remove-SPFeature -obj $_ -objName “site” -featId $FeatureId -report $report

}

}

}

function Remove-SPFeature($obj, $objName, $featId, [bool]$report)

{

$feature = $obj.Features[$featId]

if ($feature -ne $null) {

if ($report) {

write-host “Feature found in” $objName “:” $obj.Url -foregroundcolor Red

}

else

{

try {

$obj.Features.Remove($feature.DefinitionId, $true)

write-host “Feature successfully removed from” $objName “:” $obj.Url -foregroundcolor Red

}

catch {

write-host “There has been an error trying to remove the feature:” $_

}

}

}

else {

#write-host “Feature ID specified does not exist in” $objName “:” $obj.Url

}

}

To identify where the feature is installed on the farm use:

Remove-SPFeatureFromContentDB -ContentDB “WSS_Content” -FeatureId “d3fc1457-1a7b-46b1-a049-1fbef0db7415” –ReportOnly

To remove the feature from the farm use:

Remove-SPFeatureFromContentDB -ContentDB “WSS_Content” -FeatureId “d3fc1457-1a7b-46b1-a049-1fbef0db7415”

Unable to upload multiple documents

This annoying bug crops up occasionally. I spent much time looking for answers and in the end the solution is pretty simple. First off, this option is only displayed in Internet Explorer. Secondly, if you are running IE and can’t see the option, check the add-ins enabled in IE (Tools-Manage Add-ons, show All Add-ins). If STSUpld.UploadCtl is not listed then run the Office 2010 installer and repair you installation. An alternative is to install SharePoint Designer and then de-install it, which should leave STSUpld.UploadCtl in your IE add-ins.

Cannot delete a content type because it is in use

This problem kept me occupied for a stretch this morning. Finally, I think I have all the steps down:

1. If you have deleted all occurrences of the use of the content type, then check your recycle bins

2.Delete from site recycle bin.

3.Delete from Site Collection > Site Settings > Site Collection Administration > Recycle Bin.

4.Delete from End User Recycle Bin Items.

5.Delete from “Deleted From End User Recycle Bin.”

6. Use the following PowerShell script to check for left overs:

$site = Get-SPSite “http://sharepointsite

$rootweb = $site.rootweb

$sc = $rootweb.Fields[“name of one of the site columns to locate”]

if ($sc)

{

write-host ”  Found Site Column ‘” $sc.Title “‘ in gallery” -ForegroundColor Gray

foreach( $listusage in $sc.ListsFieldUsedIn() )

{

$listID = $listusage.ListID

foreach ($subweb in $site.allwebs)

{

foreach ($list in $subweb.lists)

{

if ($list.ID -eq $listID)

{

write-host ”    Site Column ‘” $sc.Title “‘ used in list ‘” $list.Title “‘ in site ‘” $subweb.Url “‘” -BackgroundColor Yellow -ForegroundColor Black

}

}

}

}

}

7. Or try this one:

$web = Get-SPWeb -identity sharepointsitename

$column = $web.Fields[“display column name”]

$column.ListsFieldUsedIn()

This will give you the UID of the list that you can then determine