Thursday 9 April 2020

SharePoint 2013 ::: IIS Config file is corrupted

Hi all,

Issue with IIS while opening the Application Pool





Checked the config file, and it was corrupted.

Solution:

1- Check when the file was last modified
2- Find the last correct file in the history folder of  your <drive>:\inetpub\history
3- stop iis : iisreset /stop
4- Copy the last correct backup file
5- start iis : iisreset /start
6- Check that the application pools are started in IIS Manager
7- Check the different Web Applications


Voilà,

That’s all Folks !!!

Monday 7 January 2019

"An update conflict has occurred, and you must re-try this action" in SharePoint

Hi all,

I was facing this issue when trying to run manually a timer job from the Central Administration GUI.

According to Microsoft, I've clear the cache of SharePoint only from 1 server of my Farm.
I've 4 servers in that Farm, and I had to clear the cache on each servers in my Farm.

This article explain how to clear the cache config, but the path mentioned is specific for SharePoint 2007:
https://support.microsoft.com/en-us/help/939308/error-message-when-you-try-to-modify-or-to-delete-an-alternate-access

Use this article for the path for SharePoint 2010, 2013 and 2016:

https://gallery.technet.microsoft.com/office/SharePoint-2010-2013-21f55320

1- Stop SharePoint Timer Job Service
2- Navigate to : C:\ProgramData\Microsoft\SharePoint\Config
3- Locate the GUID folder that has the file "Cache.ini", and the .xml files
4- Create a Backup folder
     Move all *.xml files into the Backup folder
     Copy the Cache.ini into the backup folder
5- Edit the Cache.ini (from the GUID folder)
     Select ALL, type 1
     Save the Cache.ini file
6- Restart the SharePoint Timer Job, and check that the cache .xml files are created again

Proceed those steps on each servers in your Farm.


Voilà,

That’s all Folks !!!

SharePoint 2016 On-Prem ::: Error within Word and Excel Online

Hi All,


Today I'm closing this case opened last month at Microsoft.

The issue is that on SharePoint 2016 On-Prem, it is no more possible to open any excel nor word file in the Word/Excel Online, or to have a preview of the document.

This is the error exemple that we were experiencing:


After several hours, passed with Microsoft engineer, lot of test and logs, we came to the fact that Office Web App must be reinstalled with the latest version.

And today, I was executing the latest Action Plan (A.P) proposed by the Microsoft Engineer: cleaning the Config Cache in SharePoint 2016.

Before going further, the A.P must be executed on each servers in your Farm, otherwise, you will be facing with a nice correlation ID with this message: "An update conflict..."



Below is a summary of the issue:
Scope:
You are using SharePoint Server 2016 OnPremise and lately you noticed that the users cannot open the Office files in the browser anymore.
Also the preview does not work as expected.

To be more specific:
1. The user john.doe@contoso.com navigates to https://shp.contoso.com/sites/TeamSite01/_layouts/15/start.aspx#/MyDoc/Forms/Default.aspx and selects the Word file called “Migration Doc-01.docx
2. By opening the file in Word Online, the following message appears:
Server Error in ‘/x’ Application.
Runtime Error
Description: An application error occurred on the server. The current customer error settings for this application prevent the details of the application from being viewed remotely (for security reasons). It could, however, be viewed by browsers running on the local server machine.
Details: To enable the details of this specific error message to be viewable on remote machines, please create a <customErrors> tag within a “web.config” configuration file located in the root directory of the current web application. This <customErrors> tag should then have its “mode” attribute set to “Off”

<!—Web.Config Configuration File -->
  <configuration>
<system.web>
<customErrors mode=”Off”/>
</system.web>
</configuration>”

Notes: The current error page you are seeing can be replaced by a custom error page by modyfing the “defaultRedirect” attribute of the application’s <customErrors> configuration tag to point to a custom error page URL.

<!—Web.Config Configuration File -->
<configuration>
<system.web>
<customErrors mode=”RemoteOnly” defaultRedirect=”mycustompage.htm”/>
</system.web>
</configuration>”


Action Plan:
1 - Delete the configuration cache, on EACH servers in your Farm,  using the information from this article : https://sharepointfordummies.blogspot.com/2019/01/an-update-conflict-has-occurred-and-you.html

I've used the PowerShell script after verifying that the cache was in the correct location
(URL : to check ::: http://luisevalencia.com/2016/09/28/how-to-delete-the-sharepoint-configuration-cache-with-powershell/)

     - Stop "SharePoint Timer Service" (SPTimerV4)
     - Find folder with cache.ini and .xml
        Location on SharePoint 2016 : C:\ProgramData\Microsoft\SharePoint\Config
        Create a backup folder, and move in all the .xml
        Copy the cache.ini into the backup folder
        Edit the cache.ini file, then replace all it's content by '1' + save
      - Do this previous procedure on each server in your Farm
      - Start SPTimerV4 on each servers of your Farm

2 - Run this command Update-SPWOPIProofKey  in PowerShell, from each server in your Farm
3 - Start the timer job WOPI Discovery Synchronization from Central Administration Console : as I have 2 WFE servers, I've executed both WOPI timer jobs
4 - Test the Preview and opening online your document:




This procedure will also be working with SharePoint 2010 and 2013.
Only check the path where the config folder of SharePoint is located, and adapt into your PowerShell Script.
In 2016, it is located at: C:\ProgramData\Microsoft\SharePoint\Config



Voilà,

That’s all Folks !!!





Monday 5 November 2018

SharePoint 2013 ::: Event ID 6482 ::: An update conflict has occured

Hi all,

Today, I'm facing with Event ID 6482, indicating that the job is failing due to an update conflict.



The resolution for this issue is to delete ALL .xml files where the mentioned file is located.


1. Finding the filename:
The first line give the file name of the .xml file to find. The name is located into the brackets at the end of the line:
service instance Microsoft.Office.Server.Search.Administration.SearchServiceInstance (a5744ce1-d592-42fc-a081-82188cbee126).

2. Stop the "SharePoint Timer Service"

3. Browse on each servers of your farm to this path:
C:\ProgramData\Microsoft\SharePoint\Config

4. Delete all .xml files present into the folder where .xml files are located (the other folder does contain  ".PERSISTEDFILES" : do not toutch them)

5. Edit the file "Cache.ini", and write down the number "1"

6. Save the "Cache.ini" file

7. Repeat steps 2 to 6 on each servers of your farm

8. Restart the "SharePoint Timer Service" on each servers of your farm.

9. Check that all cache files are automatically recreated.

10. Check that the file "Cache.ini" contains another number then "1"



==> Problem solved.




Voilà,


That’s all Folks !!

Tuesday 23 October 2018

SharePoint 2013 ::: .NET Server Error ::: Event ID 1023


Hi all,

Today, I'm checking one of my Farms, in my test environment, and while opening Central Administration site, I was faced to this nice Runtime Error:




Following this discover, I've tested to access to the Farm via PowerShell commands.

- First, let's load the SharePoint snapin:
          add-pssnapin Microsoft.SharePoint.PowerShell
     ==> no errors, ths it means that my farm isn't broken.

- Secondly, let's check the Farm version:
     ==> (Get-SPFarm).buildversion

Major  Minor  Build  Revision
-----  -----  -----  --------
15     0      4957   1000   


Ok, defenitely, it is not a SharePoint Farm issue.

Then, I saw some .NET Runtime (Event ID 1023) errors in the Event Viewer.
After googleling a little bit, I found the solution explained by Bryan Peters in this post.

I've made the exactly same procedure, on my both servers, and the Farm is back to live.

Create a new DWORD, followed by an IIS Reset:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework
New registry DWORD : LoaderOptimization
Value : 1
IIS Reset


==> Problem solved.




Voilà,


That’s all Folks !!

Tuesday 5 September 2017

SharePoint 2013 ::: BCS Database is in compatibility range and upgrade is recommended

Hi all,

A few time ago, I went trought this message for the BCS Database on SharePoint 2013:

BCS Database is in compatibility range and upgrade is recommended


To solve this issue, I've executed this PowerShell commands:

This solved my particular issue.
If you have the same type of message for other databases, please proceed by the same way, by replacing the name of the DB by the known name when doing a Get-Member 


Add-PSSnapin Microsoft.SharePoint.PowerShell
Get-SPDatabase | FT -auto name,type
(Get-SPDatabase | ?{$_.type -eq "Microsoft.SharePoint.BusinessData.SharedService.BdcServiceDatabase"}).Provision()




Voilà,



That’s all Folks !!!

Tuesday 20 December 2016

SharePoint 2013 ::: How to restore the deleted "Suggested sites to follow" Web Part from a user's MySite

Hi all,

Today’s challenge is to restore the Web Part “Suggested sites to follow” that was deleted by the user himself.

So, do not lose your time in trying to find the Web Part in the Add Web Part page of the mySite, it is not available.



The script, provided by Microsoft, that put me on the track is:

Add-PsSnapin Microsoft.SharePoint.PowerShell
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.WebPartPages")
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Publishing")

$useraccount = "useraccount"
$url = "http://" + [System.Net.Dns]::GetHostName() + "/my/personal/" + $useraccount
$site = get-spsite $url
$web = $site.RootWeb
$pageUrl= "Social/Sites.aspx"
$webPartManager =  $web.GetLimitedWebPartManager($pageUrl, [System.Web.UI.WebControls.WebParts.PersonalizationScope]::Shared);
$webPart = $webPartManager.WebParts | where-object { $_.WebBrowsableObject.GetType().Name -eq "ProjectSearchBrowseWebpart" }

if($webPart -ne $null)
{
    $webPartManager.DeleteWebPart($webPart)
}
$web.Update();


In the script, I found the name of the Web Part "ProjectSearchBrowseWebpart", and the page to find it.
Then, I decided to compare the code of both pages “Social/Sites.aspx” from my mySite and from the user’s mySite, using SharePoint Designer 2013.


I found then the difference at the end of the code:

Hereunder is the code from my mySite, and in yellow, the missing code in the user’s mySite code:

            <div class="ms-contentFollowing-sitesRightZone ms-tableCell ms-verticalAlignTop">
                <div class="ms-contentFollowing-bottomZoneContainer">
                    <WebPartPages:WebPartZone runat="server" FrameType="None" ID="RightZone" Title="<%$Resources:sps,LayoutPageZone_RightZone%>" Orientation="Vertical"><ZoneTemplate>
                                                                           <SPSWC:ProjectSearchBrowseWebpart runat="server" CategoryString="Site" AllowEdit="False" ChromeType="TitleOnly" Description="The recommendations web part suggests content a user may wish to follow within a farm." Title="Suggested sites to follow" ID="projectSearchBrowseWebPart" __MarkupType="vsattributemarkup" __WebPartId="{344EF58F-509A-3DE1-T3DG-ID0T674FOR6Z}" WebPart="true" __designer:IsClosed="false" partorder="2"></SPSWC:ProjectSearchBrowseWebpart>

                                                                           </ZoneTemplate></WebPartPages:WebPartZone>
                </div>
            </div>
        </div>
    </div>
</asp:Content>


So, I simply made a copy/paste of the missing line, save the user’s “Social/Sites.aspx” page, and made a refresh of his mySite in the browser.

 ==>Problem solved.





Voilà,


That’s all Folks !!!