Thursday, November 6, 2014

New ULS Viewer (August 2014 release)

In August, a new AND IMPROVED version of ULS Viewer was released!
Naturally I was very excited since it is an invaluable troubleshooting tool I use quite frequently. 

My favorite NEW ULS Viewer Feature

You can monitor multiple servers simultaneously. You can add servers from multiple farms as well and have them show up all in one log (workspace)! 



Errors

A few days after successfully using it on a couple of environments, I ran into some errors when trying to use it on a couple other environments.

When running the application I received the following error:


System.TypeInitializationException: The type initializer for 'UlsGump.AboutForm' threw an exception. ---> System.TypeLoadException: Could not load type 'System.Reflection.CustomAttributeExtensions' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
   at UlsGump.AboutForm..cctor()
   --- End of inner exception stack trace ---
   at UlsGump.MainForm.MainForm_Load(Object sender, EventArgs e)
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


I gave opening logs a try even after getting this error but still ran into another error:

The logs being received from 'Uls RealTime' were interrupted due to an error.
The error was: System.MissingMethodException: Method not found: 'Int32 System.Environment.get_CurrentManagedThreadId()'.
   at UlsGump.UlsRealtimePump.<GetPartialList>d__0..ctor(Int32 <>1__state)
   at UlsGump.UlsRealtimePump.ReadUls()

Thankfully, in only a few days the cause was known. 

"The problem lies in that the ULS Viewer (well mscorlib) is looking for the .NET 4 version of mscorlib.  Installing Microsoft .NET Framework Version 4.5 should resolve the issue.
SharePoint 2010 installs Microsoft .NET Framework Version 3.5 SP1 whereas SharePoint 2013 installs Microsoft .NET Framework Version 4.5."


So there we are, Uls version 16.0.x will work if you at least have Microsoft .Net Framework Version 4.5.


Happy digital logging!



Monday, July 7, 2014

We don't know what happened, but something went wrong. Could you please try that again?

After building a new 2013 environment there was still a couple pieces missing in order for our end users to start using Excel Services. Unfortunately the environment started being used in a less than complete state and therefore things started to be reported before completing QA -- but why not have our end users be QA and live on the wild side?

In a way it was a blessing in disguise because it has now forced that I follow a step by step process in getting it up and working and am now sharing this with the community -- yeehaw!

Firstly, a report came in from a user who added an Excel Web Access web part that pointed to a regular ol' Excel doc they had uploaded to a library on their site. Once pointing the web part to the following error showed up...


Excel Service: We don't know what happened, but something went wrong. Could you please try that again?

Looking at Event Viewer on the front end server I saw the following...

No Excel Calculation Services is available in the farm

Duh! Excel Services hadn't been started so I started it!




After starting the service I still got an error...

Couldn't Open the Workbook: This workbook cannot be opened because it is not stored in a trusted location.
To create a trusted location, contact your system administrator.



Based on this I looked at what I had in Trusted File Locations and found that I only had http:// so I had to add https:// as a trusted location on the Excel Services Application
  • Central Administration > Application Management > Manage service applications > click on your Excel Services Application to open it > Trusted File Locations
  • Add Trusted File Location > enter https:// in the Address field
  • Check the Children trusted checkbox and OK (I had no need at the moment to modify any other setting but you may)
Ultimately I ended up with what you see below...


However, after refreshing my browser I saw...
Couldn't Open the Workbook: The workbook cannot be opened


I had seen this error before so I wasn't completely bummed seeing yet ANOTHER error. And luckily it was the same issue -- in essence this comes up when the service account running Excel Services does not have proper permissions to the content database where the content resides.
I followed the following steps to resolve it...


  • $w = Get-SPWebApplication –Identity <URL of the Web application>
    $w.GrantAccessToProcessIdentity("<service account>")

Finally, after this last step I tasted victory!


Monday, May 19, 2014

PivotTable Operation Failed - "An error occurred while working on the Data Model in the workbook"

I recently came upon this error when clicking on slicers in a PowerPivot report published to SharePoint 2013:



Fix: Try restarting both the SQL Server Analysis Services (POWERPIVOT) service and SQL Server PowerPivot System Service



  1. Restart SQL Server Analysis Services (POWERPIVOT) service
    • Has to be done on the server PowerPivot was set up on -- if you do not know the server go to Central Administration > Application Management > Manage service applications > select the Excel Service Application > Data Model Settings > server name will show up here if it has been set up. If there is no server listed here then this piece of the configuration MUST be completed! Refer to this TECHNET article)

  2. Restart SQL Server PowerPivot System Service
    • Central Administration > System Settings > Manage services on server > Stop and start the SQL Server PowerPivot System Service

The following technet article explains service dependencies and the effects of restarting these services. I recommend reviewing this before implementing the fix: http://technet.microsoft.com/en-us/library/ee637437(v=sql.105).aspx


Coming Soon...


Wednesday, April 9, 2014

SharePoint 2013 Search Series

I recently had several SharePoint 2013 search projects come up. I was anxious to work on something new and especially excited to delve into a few projects of this sort. Clearly there was much to learn in order to deliver a great end product so I spent -- and continue to spend -- a bit of time becoming familiar with the new features 2013 search offers. In addition to this, SharePoint conference had some great sessions on search so I was even more pumped to get to it.

A quick go-to resource I have found more than helpful has been a series that was published on Microsoft's technet blogs. They've done a great job presenting search from the bottom up. From creating result sources to creating verticals to improve your client's search experience. Also, from playing around with display templates to custom actions on the preview panel.

The series has many topics and subtopics and can become a bit annoying if you're trying to navigate to get to a specific topic in the series. Because of this, I created a table with all the main topics and subtopics included in each post. I hope this is helpful and time saving if you decide to use this as a reference.


























May this help you find your way sooner than later

Monday, February 3, 2014

InfoPath - hide/show fields based on SharePoint groups

Thank you to all who came to my presentation this past weekend at SharePoint Saturday!

In my presentation I mentioned that you can hide/show fields based on what SharePoint group the user opening the form is a member of. 
Someone asked about how to do that and it can be found on jaliya's BLOG.

I have also found this same method very useful when multiple groups (i.e. submitter, marketing, finance, etc.) use the same form. You can create a form load rule and switch the view to the one you need the individual to go to.
If using this approach on form load, make a quick modification to Step 6 -- change the condition to "is not equal to..."

Once you've done this you'll feel like...