Tuesday, November 10, 2015

Excel 2013 documents opening slow in SharePoint 2013

Using Office 2013 (15.0.4701.1001), often excel documents would hang for 20-30 seconds. Microsoft suggested the following key be added to the end user registry:
  1. Open regedit.exe
    Navigate to following key:
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\15.0\Common\Internet]
  1. Click Edit Menu -> New -> DWORD with name of "FSSHTTPOff" (without quotes)
  2. Click on "FSSHTTPOff" and enter value of 1
  3. Close any Office Applications and browser sessions
Please use at your own risk.

Wednesday, May 20, 2015

SharePoint 2013 List throws the "Value does not fall within the expected range." error when trying to submit a new item.

Recently, we had an issue with one of our custom lists. This list had a form customized with InfoPath 2013. Out of nowhere, one day we could not submit any new items and would get the following error message.


"Value does not fall within the expected range."
After checking ULS logs, we found the following:



System.ArgumentException: Value does not fall within the expected range., StackTrace:
at Microsoft.SharePoint.SPListItem.AddOrUpdateItem(Boolean bAdd, Boolean bSystem, Boolean bPreserveItemVersion, Boolean bNoVersion, Boolean bMigration, Boolean bPublish, Boolean bCheckOut, Boolean bCheckin, Guid newGuidOnAdd, Int32& ulID, Object& objAttachmentNames, Object& objAttachmentContents, Boolean suppressAfterEvents, String filename, Boolean bPreserveItemUIVersion)
at Microsoft.SharePoint.SPListItem.UpdateInternal(Boolean bSystem, Boolean bPreserveItemVersion, Guid newGuidOnAdd, Boolean bMigration, Boolean bPublish, Boolean bNoVersion, Boolean bCheckOut, Boolean bCheckin, Boolean suppressAfterEvents, String filename, Boolean bPreserveItemUIVersion)
at Microsoft.SharePoint.SPListItem.Update()
at Microsoft.SharePoint.SPListItem.ValidateUpdateListItem_Client(List`1 formValues, Boolean bNewDocumentUpdate)
at Microsoft.SharePoint.ServerStub.SPListItemServerStub.InvokeMethod(Object target, String methodName, XmlNodeList xmlargs, ProxyContext proxyContext, Boolean& isVoid)
at Microsoft.SharePoint.Client.ServerStub.InvokeMethodWithMonitoredScope(Object target, String methodName, XmlNodeList args, ProxyContext proxyContext, Boolean& isVoid)
at Microsoft.SharePoint.Client.ClientMethodsProcessor.InvokeMethod(Object obj, String methodName, XmlNodeList xmlargs, Boolean& isVoid)
at Microsoft.SharePoint.Client.ClientMethodsProcessor.ProcessMethod(XmlElement xe)
at Microsoft.SharePoint.Client.ClientMethodsProcessor.ProcessOne(XmlElement xe)
at Microsoft.SharePoint.Client.ClientMethodsProcessor.ProcessStatements(XmlNode xe)
at Microsoft.SharePoint.Client.ClientMethodsProcessor.ProcessExceptionHandlingScope(XmlElement xe)
at Microsoft.SharePoint.Client.ClientMethodsProcessor.ProcessOne(XmlElement xe)
at Microsoft.SharePoint.Client.ClientMethodsProcessor.ProcessStatements(XmlNode xe)
at Microsoft.SharePoint.Client.ClientMethodsProcessor.Process()
at Microsoft.SharePoint.Client.ClientRequestServiceImpl.ProcessQuery(Stream inputStream, IList`1 pendingDisposableContainer)
at Microsoft.SharePoint.Client.ClientRequestService.ProcessQuery(Stream inputStream)
at SyncInvokeProcessQuery(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
at System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump(RequestContext request, Boolean cleanThread, OperationContext currentOperationContext)
at System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(RequestContext request, OperationContext currentOperationContext)
at System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(IAsyncResult result)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.Runtime.InputQueue`1.AsyncQueueReader.Set(Item item)
at System.Runtime.InputQueue`1.EnqueueAndDispatch(Item item, Boolean canDispatchOnThisThread)
at System.Runtime.InputQueue`1.EnqueueAndDispatch(T item, Action dequeuedCallback, Boolean canDispatchOnThisThread)
at System.ServiceModel.Channels.SingletonChannelAcceptor`3.Enqueue(QueueItemType item, Action dequeuedCallback, Boolean canDispatchOnThisThread)
at System.ServiceModel.Channels.HttpPipeline.EnqueueMessageAsyncResult.CompleteParseAndEnqueue(IAsyncResult result)
at System.ServiceModel.Channels.HttpPipeline.EnqueueMessageAsyncResult.HandleParseIncomingMessage(IAsyncResult result)
at System.Runtime.AsyncResult.SyncContinue(IAsyncResult result)
at System.ServiceModel.Channels.HttpPipeline.EmptyHttpPipeline.BeginProcessInboundRequest(ReplyChannelAcceptor replyChannelAcceptor, Action dequeuedCallback, AsyncCallback callback, Object state)
at System.ServiceModel.Channels.HttpChannelListener`1.HttpContextReceivedAsyncResult`1.ProcessHttpContextAsync()
at System.ServiceModel.Channels.HttpChannelListener`1.BeginHttpContextReceived(HttpRequestContext context, Action acceptorCallback, AsyncCallback callback, Object state)
at System.ServiceModel.Activation.HostedHttpTransportManager.HttpContextReceived(HostedHttpRequestAsyncResult result)
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest()
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest()
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequest(Object state)
at System.ServiceModel.AspNetPartialTrustHelpers.PartialTrustInvoke(ContextCallback callback, Object state)
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequestWithFlow(Object state)
at System.Runtime.IOThreadScheduler.ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)


We figured it was a corrupted column but since this list has about 80 columns of different types we could not quite put a finger on which one was corrupted. After exhausting google search and million articles that led to mostly custom code, development, and people/groups column issues we submitted a ticket with Microsoft. However, Microsoft could not figure it out but agreed that its a corrupted column.

Our next step was to export the list and import it into another site and start deleting columns one by one until we find the one that is corrupted. After much trial and error we found that the issue was with a dropdown (choice column). If we deleted that particular choice column, we could submit new items with no problems.

So deleting this column in production list would be a big problem, hence deleting was not an option or at least not yet. Next, we realized that this column was indexed so we deleted its index and tried to submit new item...and it worked!!!

So it appears that its index was corrupted somehow, so simply deleting its index resolved the issue.





Tuesday, February 3, 2015

SharePoint 2013 Alerts not working...again

There is plenty of resources online about this issue and none suggest doing this first and they really should.

So if you had SharePoint 2013 alerts configured and working and is just stopped working one day with the following symptoms:

  • If you register for alerts in a particular list, you get a notification that "You have successfully created an alert for..."
  • If you modify any item in the same list as above, no alerts come thru.

You will need to make sure that each SharePoint server ip address (web front, application) in the farm is added as an allowed SMTP sender in Exchange.

Explanation: Any SharePoint server in the farm can be in charge of sending an alert and usually one is in charge of a particular site collection. If you restart Timer Service, it might move that responsibility to another SharePoint server whose IP is not listed as an allowed SMTP sender in Exchange, and as an end result, it might not send alerts.

Hoping this helps someone

Wednesday, November 6, 2013

Publishing Office Web Apps 2013 in UAG 2010

If you are setting up Office Web Apps 2013 along with SharePoint 2013 and need to publish both in UAG 2010 for external users you should read the following article:

http://technet.microsoft.com/en-us/library/jj204665.aspx

Pay close attention to line 8 as it made a difference for us.

Tuesday, October 1, 2013

The permissions granted to user ‘domain\username’ are insufficient for performing this operation.

If you are setting up SharePoint 2013 and SQL 2012 with SharePoint Integration Mode please read on. You might be under impression you did everything properly but you get the following error when trying to deploy a report using BIDS or trying to edit a data source:

"The permissions granted to user ‘domain\username’ are insufficient for performing this operation. —> Microsoft.ReportingServices.Diagnostics.Utilities.AccessDeniedException: The permissions granted to user ‘domain\username’ are insufficient for performing this operation."

To solve this problem you have to grant your SQL Reporting Service Application Pool Account (whatever is running your SQL Service Application, see Central Admin -> Manage Service Application -> SQL Server Reporting Services) Full Control to the web application that report is being deployed to in your particular case.

Or you could just use the powershell command below:

$webApp = Get-SPWebApplication –Identity http://yoursharepointapp
$webApp.GrantAccessToProcessIdentity(“domain\SSRSAccount”)


Source: http://paulliebrand.com/

Thursday, September 26, 2013

Attaching SharePoint 2010 content database (Windows/SQL 2008 R2) database to SharePoint 2013 (Windows/SQL 2012)

If you are migrating from SharePoint 2010 to SharePoint 2013 and trying to attach a SharePoint 2010 content database that used to reside in SQL 2008 R2 to SQL 2012 you should know the following.

During the upgrade process of attached database you might get an error message similar to this:

"WARNING The [SharePoint - 25000] web application is configured with claims authentication mode however the content database you are trying to attach is intended to be used against a windows classic authentication mode."

The reason you are getting error message above is because all new Web Applications in SharePoint 2013 are by default created in Claims Authentication Mode.

To get around this, create the new Web Application in SharePoint 2013 using PowerShell command with Windows Classic Authentication Mode:

New-SPWebApplication -Name "Contoso Internet Site" -ApplicationPool "ContosoAppPool" -AuthenticationMethod "Kerberos" -ApplicationPoolAccount (Get-SPManagedAccount "CONTOSO\jdoe") -Port 80 -URL "https://www.contoso.com"

Microsoft: http://technet.microsoft.com/en-us/library/gg276326.aspx

Please be aware that this authentication mode is no longer supported. At this point you can run the upgrade once more and move on.

If you use anything written here, you do it on your own risk!

My very first post! Oy, so excited!!!

Here goes my very first post.

I will blog mostly about SharePoint 2010 and SharePoint 2013. I am no expert, these blogs are just about my daily interactions with SharePoint.

Wish me luck!