PreUpgradeCheck Error How to locate reference of Missing Feature - sharepoint

I am migrating sharepoint 2007 publishing site to sharepoint 2010. For migration process I have followed the steps
1. Backup the content database from the SP2007 machine.
2. Restore that database in sql server 2008 (SP2010 machine).
3. Create a new web application in SP2010.
4. I have run the following stsadm command for PreUpgradeCheck in SP2007
I am getting the error log as follows
Error: Missing server file or server configuration issues
Server side files are referenced in the content databases, but are not installed on the server. Without these files, the sites may not function completely or the content may not render correctly. Also, upgrade or post upgrade issues may occur if these files are not available in the new version environment.
The following feature(s) are referenced by the content, but they are not installed on the web server
Name = Unknown, Feature id = f3dc6c9a-ea83-4c22-bdb9-1a3a178717cf, Reference count = 1, Scope = Web, Status = Missing
Name = Unknown, Feature id = a5977882-1fbc-4b94-a345-c9f3dac1b18c, Reference count = 1, Scope = Web, Status = Missing
The link provided below the error explains the issue but doesn't provide any instruction on how to search through the content to find the reference in order to fix it.
For more information about this rule, see KB article 976218 in the rule article list at http://go.microsoft.com/fwlink/?LinkID=120257.
Could anyone provide a solution for this issue ?

You can search the 12 hive location in your 2007 machine to find the missing feature. Do a text search on f3dc6c9a-ea83-4c22-bdb9-1a3a178717cf and the other feature and install it in SharePoint 2010.
You can also use a tool such as SharePoint Manager 2007 to browse all the features and inspect their ID's but doing a text search will allow you to find the missing feature quickly.

Related

SharePoint 2016 - Copying content DB from Prod to Dev

I tried to copy the content DB from Prod to Dev server for the first time in my SP 2016 environment. Both the environments build versions are same (16.0.4705.1000). However in the prod under "Manage Patch Status" I see one extra Feature Pack 2 patch (16.0.4588.1001).
https://support.microsoft.com/en-us/help/4011127/descriptionofthesecurityupdateforsharepointserver2016september12-2017
Now when I am doing Mount-SPContentDatabase, I get the following error.
Mount-SPContentDatabase : An extension defined in the database is not registered with the farm.
In the ULS I see the following information. It says the project server database extensions are missing.
Following are my questions,
Is this because I have installed Feature Pack 2(link above) in Prod which has security updates for Project server? We don't have project server enabled in either of the environments.
Can I install the Feature Pack 2 in Dev now even though it has higher security update already installed? Isn't the later patch includes everything that was released in the previous patches?
This is just for my understanding. In the manage patch status why does the Install Status for feature pack 2 shows as "Superseded" even though I have other later patches?
Tried Restore-SPsite as well but getting error "The extension set does not match."
Had the same problem during the migration from 2016 -> 2019.
My solution:
Register the missing extension https://techcommunity.microsoft.com/t5/sharepoint-support-blog/upgrading-a-content-db-from-sharepoint-2016-to-sharepoint-2019/ba-p/1374209 (look at the bottom of the post)
remount the contentDB
Required code to perform the registration in step 1:
Check extensions in old farm
$contentservice=[Microsoft.sharepoint.Administration.SPwebservice]::ContentService
$contentservice.RegisteredDatabaseExtensionTypes >> SP2016Farm_registered_Extn.txt
Check extensions in new farm
$contentservice=[Microsoft.sharepoint.Administration.SPwebservice]::ContentService
$contentservice.RegisteredDatabaseExtensionTypes >>SP2019Farm_registered_Extn.txt
Register missing extension in new farm
$svc = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Project.Server.Database.Extension") | FL
$svc.RegisteredDatabaseExtensionTypes.EnsureAdded([Microsoft.Office.Project.Server.Database.Extension.ProjectDatabaseExtension])
$svc.Update($true)
In my case i did the steps below before i have registered the missing extension, but i think/hope there is no need to do that.
Powershell: Enable-ProjectServerLicense (Trail License)
Check running Sharepoint CA > ProjectServer Service
Check/create Sharepoint CA > ProjectServer Application

Missing server side dependencies

I am getting an alert in Sharepoint Central Admin that The SharePoint Health Analyzer has detected some critical issues.
On checking, I found the alerts like:
[MissingSetupFile] File [Features\xxxx\xxxx\xxx] is referenced 1 times in the database [PROD01_Content_xxxx], but exists only under Microsoft SharePoint Foundation 2010 setup folder. Consider upgrading the feature/solution which contains this file to the latest version. One or more setup files are referenced in the database [PROD01_Content_xxxx], but are not installed on the current farm. Please install any feature or solution which contains these files.
[MissingFeature] Database [PROD01_Content_xxxx] has reference(s) to a missing feature: Id = [f99f774c-6160-4bb6-8519-10e30b02d5b3]. The feature with Id f99f774c-6160-4bb6-8519-10e30b02d5b3 is referenced in the database [PROD01_Content_xxxx], 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.
[MissingWebPart] WebPart class [a9bc1035-cf56-e003-8a4d-fff0bb3da148] (class [Microsoft.Office.Server.Search.WebControls.SearchApplicationSystemStatus] from assembly [Microsoft.Office.Server.Search, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c]) is referenced 1 times in the database [PROD01_SharePoint_AdminContent], but is not installed on the current farm. Please install any feature/solution which contains this web part. One or more web parts are referenced in the database [PROD01_SharePoint_AdminContent], but are not installed on the current farm. Please install any feature or solution which contains these web parts.
I followed the link:
http://get-spscripts.com/2011/06/removing-features-from-content-database.html
But unfortunately, on running the script, it shows the feature does not found.
One thing I would like to mention is: I've deployed the sharepoint 2010 wsp on 2013 version.Is this the reason for getting [MissingSetupFile] error?
What can I do? Any help will be appreciated.
Thanks,
Pay attention to the first message that says "but exists only under Microsoft SharePoint Foundation 2010 setup folder" . This means that you have deployed a 2010 solution into a 2013 farm. But is only installed to 14 hive. for the solution to work properly in the 2013 farm, it needs to be installed to the 15 hive also.
Here is the PowerShell that installs to both 14 and 15 hive.
Install-SPSolution -Identity 'your custom solution.wsp' -GACDeployment -CompatibilityLevel {14,15} -AllWebApplications –force
The link below provides the solution.
Worked for me.
http://sharepointsoldiers.wordpress.com/2013/04/22/sharepoint-2013missing-serverside-dependencies/

Disconnected TFS Server still lives on in VS 2012

When starting VS 2012, I'm getting this error in the Output window:
> TF205020: Could not connect to server ‘https://Xxxxxxxx. This server was used in your last session, but it might be offline or unreachable. Confirm that the server is available on the network. To attempt to connect again, or to a different server, click ‘Connect To Team Foundation Server’ in Team Explorer or the Team menu.
>
> The server returned the following error: TF400324: Team Foundation
> services are not available from server https://Xxxxxxx. Technical
> information (for administrator): The underlying connection was
> closed: Could not establish trust relationship for the SSL/TLS secure
> channel.
(Xxxxx used for server name here).
This is a TFS server I used on a contract project a couple of months ago - I'm no longer working with them so I want it just gone. I removed the server in the Team / Connect to Team Foundation Server... dialog but this seems to live on in VS's memory somewhere.
Anyway to make it be gone/gone?
I (finally) was able to remove all my bindings and references to an old TFS server by doing the following:
Delete the contents of the folder, %LocalAppData%\Microsoft\TeamFoundation\Cache.
As someone else suggested, search for all occurrences of LocalItemExclusions.config within %LocalAppData%\Microsoft\Team Foundation\, and remove any/all "TeamProjectCollection" elements that reference the obsolete server in their uri="..." attribute.
Edit the file, %LocalAppData%\Roaming\Microsoft\VisualStudio\11.0\TeamExplorer\TeamExplorer.Config. Remove all "Server" elements having a url attribute that references the obsolete server.
I did this for both VS 2010 and VS2012. It was not until I completed the third step that the error mentioned by the original poster went away, and Visual Studio started quickly, as it always used to.
I was unwilling to use the nuclear option as described in the first part of superlime's answer to this question--deleting the entire contents of "%LocalAppData%\Microsoft\Team Foundation\".
Instead I followed the second part of his answer--deleting the contents of "%LocalAppData%\Microsoft\Team Foundation\N.N\Cache", which I did for all versions (N.N) found.
That helped, but wasn't quite enough. I also had to do the following:
Search for all occurrences of a file called LocalItemExclusions.config within "%LocalAppData%\Microsoft\Team Foundation\" and its subfolders.
Remove from those files, in their entirety, any <TeamProjectCollection> elements that reference the obsolete server in their uri="..." attribute.
That was enough for me--however, I can imagine other references lurking, if you've been using TFS targeting that server for awhile. If the above steps are insufficient, you might simply try searching for additional references in all files (excluding logs) in that directory hierarchy, and surgically removing them.
I found that I needed to do both steps to remove this from VS 2012 :
Delete the content of the folder %LocalAppData%\Microsoft\TeamFoundation\Cache
Delete the content of the folder %LocalAppData%\Microsoft\Team Foundation\
Much thanks to both contributors for their help. Shame to Microsoft for not insuring that removing Team Foundation occurs cleanly.
Bit of a "nuke from orbit" option, but try deleting the contents of the TFS client cache. Should be located in this location:
%LocalAppData%\Microsoft\Team Foundation\
According to this blog post (which is for 2010, and a little stale on version info), you should just delete the contents of the cache folder, not the cache folder itself (or the parent dir).. So theoretically you'd just want to delete everything inside of:
%LocalAppData%\Microsoft\Team Foundation\4.0\Cache

Modifying machine.config in any way causes "Service Unavailable" browser error for SharePoint 2013 site

I need to add some new entries to machine.config on a machine running SharePoint 2013 (server). However, no matter what change I make, after I have saved the file and restarted IIS (both steps are successful), all SharePoint sites return HTTP Error 503 ("Service Unavailable") when an attempt is made to view them in a browser on a client machine.
In Internet Information Services (IIS) Manager, it seems that the entire server becomes unavailable - no application pool or site can be accessed, i.e. trying to click anything returns "Filename:redirection.config / Error: Cannot read configuration file". This error goes away once the original machine.config is restored.
The machine.config file I'm trying to edit is located at:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config
Any help on how to resolve this would be appreciated.
Turns out you need to define <sectionGroup> elements in machine.config - I was not aware of that. E.g. if you want to use <Test> key somewhere, you need to add it to the appropriate section elsewhere in machine.config like this: <section name="Test" .../>. More info can be found on MSDN.

SharePoint 2010: Setting up a local dev environment from production data - Could not load file or assembly due to invalid PublicKeyToken

I have tried multiple ways to get the production SharePoint content to my newly installed local development environment that is running on a VM Windows Server 2008 R2. After an export of the farm and a restore failed I came across this blog post and followed these instrucitons: http://richardstk.wordpress.com/2012/02/03/build-a-sharepoint-2010-development-test-environment/. To sum up, it's basically backing up the live SQL Content database as well as the Profile, Sync and Social databases, then restoring them on the dev machine and pointing SharePoint to use these new databases instead of the old ones. Then after that I deployed the custom webparts to the development server from within Visual Studio.
I've done this and it seemed to work pretty well. I can access Central Administrator as well as setting up a SharePoint Connection within Visual Studio and being able to see all the pages, lists, documents, etc. So it is definitely pointing to the new content database. I should mention I can also connect via SharePoint Designer and access all the correct content, Master Pages, lists, etc.
The problem I am having is that I am getting a "Could not load file or assembly" error when I go to the site in a browser and it takes me to /Pages/Home.aspx. The file is a custom webpart that I have deployed from within Visual Studio. When I look within the GAC I see the assembly listed but the PublicKeyToken is different from the one that is shown in the error message.
When I dig into it a little more I see that the custom user control is registered in my Master page, and when I look at the ascx file in the _controltemplates directory where it is located there is an Assembly that looks like this:
<%# Assembly Name="BlogRoll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=529e9730fe2a198d" %>
That PublicKeyToken is correct for the live site when I look in the GAC there but when I deployed it to my local GAC it created a new PblicKeyToken. Sorry if I'm rambling but I wasn't sure what was relevant and what wasn't.
I guess my question is how to handle this? It doesn't seem smart to change all the ascx files locally to match the new PublicKeyToken's that I have in the local GAC because then when I deploy these changes to live they won't find the appropriate assembly. What is the best way to handle this?
UPDATE
The code in question has a key.snk file that is being used to strongly sign it. My understanding is that this should make it so that it gets compiled with a specific PublicKeyToken each time and therefore install in the GAC with a specific PublicKeyToken. If that is true, then I believe the only reason it would have a different key token on my dev environment versus the production is that the key.snk file that has been provided is incorrect. Is that true?
You could use WSP Builder or WinGac to forcibly deploy the assembly with the correct PublicKeyToken to your local GAC.

Resources