Friday, May 23, 2014

SharePoint 2013 Search Provisioning Errors

Configuring Search in SharePoint 2013 can be a tricky process that is best accomplished via PowerShell scripts. For starters, those messy database names with GUID's in them that get created from UI provisioning are just hideous, but the real issue is that a proper topology (meaning search components running on more than a single machine) can only be deployed via PowerShell cmdlets. Despite our best efforts to script the entire process and avoid the kind of small mistakes that lead to endless hours of frustration, it's inevitable that some small setting or configuration step will crop up that creates a giant headache.

Take, for example, the new "SPSearchDBAdmin" role. This role, which didn't exist in 2010, is added to each search database when it is created in SQL server. If you are following best practices and assigning service accounts for search operations (one for administration, one for crawling, and neither should be the SharePoint Farm or Admin accounts), the account you assign as the Search admin will be added to the SQL logins and given the "public" role. That's all well and good for least privileged purposes but that role alone is insufficient for the Search application to function. Unfortunately, there's no warning about this when the Search service application is created – provisioning will succeed but nothing really works. In order to kick Search into gear, you first need to assign the "SPSearchDBAdmin" role to the Search admin account in SQL server.

The SPSearchDBAdmin role in SQL Server Eric Shupps Eric Alan Shupps eshupps @eshupps SharePoint Cowboy BinaryWave SmartTrack
Assigning the SPSearchDBAdmin Role in SQL Server Management Studio
Also bear in mind that the Search admin account requires read/write permissions to the folder in which the index files reside. As this account should *not* be a local administrator it's very likely that it won't have access to the folders that hold the primary and replica index files. Be sure to assign the appropriate permissions on each server in the topology which contains an index partition (the default location is "C:\Program Files\Microsoft Office Servers\15.0\Data\Office Server\Applications" which, ideally, should be changed as part of the provisioning process). Possible error messages which indicate your search admin account may not have the correct SQL or folder permissions include:

"Content Plugin can not be initialized - list of CSS addresses is not set."
"Unable to retrieve topology component health states. This may be because the admin component is not up and running"
"Topology activation failed. No system manager locations set, search application might not be ready yet"
"Could not access the Search database. A generic error occurred while trying to access the database to obtain the schema version info."

There are a lot of blogs, forum posts, and articles with all sorts of advice on how to deal with these errors, most of which prescribe repetitive un-provisioning and re-provisioning of service applications. Although those solutions may apply to your environment at some point, before going down that road first ensure that the Search admin account has the proper database and file permissions, as no amount of provisioning will overcome basic security limitations.

(Note: For a good walkthrough on Search provisioning via powershell, refer to this post from Ryan Bushnell and the Search cmdlet reference on TechNet)

Eric Shupps Eric Alan Shupps eshupps @eshupps SharePoint Cowboy BinaryWave SmartTrack 
Take the trouble out of troubleshooting.  
Improve service levels and avoid downtime with
SmartTrack Operational Analytics for SharePoint


Articles

Ten Steps to Optimize SharePoint Performance by Eric Alan Shupps


Webcasts

Eric Shupps - Secrets of SharePoint Part 5: Configuring Microsoft Office SharePoint Server 2007 for Optimal Performance
Creating End User SharePoint Solutions for Performance and Scalability by Eric A. Shupps
SharePoint 2010 Performance Enhancements for Administrators with Eric Shupps
Microsoft SharePoint Server 2010 for the ASP.NET Developer
Eric Shupps on Following Best Practices and Avoiding Common Errors with Microsoft Office SharePoint Server 2007 Development
SharePoint Performance and Capacity Planning Essentials from Eric Alan Shupps
Eric Shupps on Troubleshooting Common Performance Problems in SharePoint 2010


Videos

Channel 9 Interview with Eric Shupps
SharePoint TechTalk - Different Views on Social Computing
Eric Alan Shupps talks SharePoint Post-Deployment Planning and Management


Podcasts

SharePoint Pod Show - Design for Performance eith Eric Shupps
SharePoint Pod Show - Test Driven Development with Eric Shupps
Run As Radio - Eric Shupps Improves SharePoint Performance


Social

Eric Shupps - ConferenceHound
Eric Shupps on Talk TechNet
Eric Alan Shupps on Channel 9
Planet SharePoint Eric Shupps profile
Eric Shupps Lanyrd
Eric Shupps MVP Profile
Eric Alan Shupps About.me
The SharePoint Cowboy Tumblr
Eric Shupps on Speakerfile
Eric Shupps - Facebook
Eric Shupps LinkedIn Profile
Eric Shupps Google+
Twitter - @eshupps


Wednesday, June 19, 2013

SharePoint People Search and SSL

The great thing about SharePoint Enterprise Search is that once it's up and running it mostly just works. Except, of course, when it doesn't. Recently I was troubleshooting a farm in which People search stopped returning any results. In this environment, the main OU containing user accounts had been moved and a new profile import run to re-populate the profile database. The import was successful but the changes required a full crawl of the content source which had been working just fine up until that point. After the next crawl completed all queries against the People scope returned an empty result set.

After confirming that none of the permissions had changed, and that the default crawl account still had access to the User Profile service app and all web applications, another full was run without success. It was during this run that the crawl log displayed the following error for the primary web application (which had probably been there all along but was buried beneath a number of other content-related crawl errors):

An unrecognized HTTP response was received when attempting to crawl this item. Verify whether the item can be accessed using your browser.

A bit of research indicated that this is usually due to insufficient permissions – either the crawl account does not have Full Read permissions set in the web application User Policy or it hasn't been granted the "Retrieve People Data for Search Crawlers" right for the user profile service application. But in this case both sets of permissions were valid. An attempt to connect to the search crawl web service (/_vti_bin/spscrawl.asmx) confirmed this but also revealed something interesting – all HTTP requests were being redirected to HTTPS. Another look at the Content Source in Search Administration showed that the primary web application was, in fact, set up to crawl content via an HTTPS URL.
 
The SharePoint People Search mechanism requires a specific URL format within a Content Source, one that begins with "sps3://" instead of the usual "http://". The site cannot actually be browsed via this URL; instead, it's merely a connector reference that the search crawler associates it with the proper URI under the covers. When a web application is secured via SSL the protocol portion of the URL has to be changed from "sps3://" to "sps3s://" – the "s" letting the crawler know it should use HTTPS instead of HTTP.
 
Eric Shupps Eric Alan Shupps eshupps @eshupps SharePoint Cowboy BinaryWave SmartTrack

Specifying an SSL target for the People search content source

Changing the URL value in the Content Source from "sps3://" to "sps3s://" resulted in a successful crawl and People search started returning results at the conclusion of the next full crawl. So if any of the web applications in your farm use HTTPS by default, be sure to check the Content Source settings to be sure that the search crawler can properly access them.


 
 
SharePoint is Talking.  Are you Listening?
Improve service levels and avoid downtime with
SmartTrack Operational Intelligence for SharePoint

Sunday, October 28, 2012

Using Multiple Displays and Projectors with Windows 8 and Lenovo W520

When Lenovo started shipping hybrid graphics in their W500-series workstations, it was a great improvement for road warriors who need both full-power graphics when connected to a power source and long battery life on the go. This is achieved by the presence of two video cards – an integrated Intel chip side-by-side with an nVidia Quadro GPU. The nVidia drivers ship with software that automatically switch between graphics modes based on the current power profile.

This configuration works great until the machine is connected to an external monitor or projector via the VGA port. For some reason, the nVidia software is unable to automatically balance the output between both video cards when the display is duplicated. Many users have resorted to disabling one or the other video cards in the BIOS, which works fine but requires that the change be made manually each time to computer is rebooted (assuming that the user wants the low power mode at some point – if the machine is always plugged in then it's really not an issue).

There is, however, a way to get display duplication working with the auto-switching Optimus mode. All the configuration options are there in the nVidia control panel but the configuration isn't very intuitive. Here's how to make it work (this holds true for both Windows 7 and Windows 8, although the sub-menu text in the control panel is a bit different between driver versions)...

Read more from Eric Shupps


Articles

Ten Steps to Optimize SharePoint Performance

Webcasts

Secrets of SharePoint Part 5: Configuring Microsoft Office SharePoint Server 2007 for Optimal Performance
Creating End User SharePoint Solutions for Performance and Scalability 
SharePoint 2010 Performance Enhancements for Administrators
Microsoft SharePoint Server 2010 for the ASP.NET Developer
Following Best Practices and Avoiding Common Errors with Microsoft Office SharePoint Server 2007 Development
SharePoint Performance and Capacity Planning Essentials
Troubleshooting Common Performance Problems in SharePoint 2010

Videos

Channel 9 Interview with Eric Shupps
SharePoint TechTalk - Different Views on Social Computing
SharePoint Post-Deployment Planning and Management

Podcasts

SharePoint Pod Show - Design for Performance
SharePoint Pod Show - Test Driven Development
Run As Radio - Eric Shupps Improves SharePoint Performance

Social

ConferenceHound
Talk TechNet
Channel 9
Planet SharePoint
Lanyrd
MVP Profile
About.me
Tumblr
Speakerfile
Facebook
LinkedIn
Google+
Twitter

Monday, October 15, 2012

Using the Chrome Control in SharePoint 2013 Apps

In the new SharePoint 2013 App model, there are essentially two ways to host apps – within SharePoint itself or from an external web site (also known as "provider hosted" or "autohosted"). One of the disadvantages of external apps is that they don't look or feel like SharePoint. All the familiar navigation menus and shortcuts are missing, resulting in a stark contrast between the default SharePoint visual experience and whichever app is currently being used unless the app developer went the extra mile (or ten) to style their app.

While this isn't really a bad thing – the app is fully functional and can communicate with SharePoint – it doesn't quite lend itself to a cohesive user experience. To bridge this gap, Microsoft allows developers to import a very basic version of the SharePoint 2013 chrome into their apps without having to manually create matching HTML controls. The functionality for this can be found in the SP.UI.Controls.js file located in the new /_layouts/15 directory. To use the chrome control, first add a reference to SP.UI.Controls.js (make sure you've already loaded the requisite JQuery files and other dependencies), then add an empty <div> to your page markup at or near the top of the page..

Read more from Eric Shupps


ArticlesTen Steps to Optimize SharePoint Performance

Webcasts

Secrets of SharePoint Part 5: Configuring Microsoft Office SharePoint Server 2007 for Optimal Performance
Creating End User SharePoint Solutions for Performance and Scalability 
SharePoint 2010 Performance Enhancements for Administrators
Microsoft SharePoint Server 2010 for the ASP.NET Developer
Following Best Practices and Avoiding Common Errors with Microsoft Office SharePoint Server 2007 Development
SharePoint Performance and Capacity Planning Essentials
Troubleshooting Common Performance Problems in SharePoint 2010

Videos

Channel 9 Interview with Eric Shupps
SharePoint TechTalk - Different Views on Social Computing
SharePoint Post-Deployment Planning and Management

Podcasts

SharePoint Pod Show - Design for Performance
SharePoint Pod Show - Test Driven Development
Run As Radio - Eric Shupps Improves SharePoint Performance
Social

ConferenceHound
Talk TechNet
Channel 9
Planet SharePoint
Lanyrd
MVP Profile
About.me
Tumblr
Speakerfile
Facebook
LinkedIn
Google+
Twitter

Thursday, October 11, 2012

Using PowerShell to Set List View Parameters in SharePoint Web Parts

While working on some modifications to the SharePoint 2010 blog site template I ran across an interesting problem. I was trying to duplicate the functionality of a particular web part; in this case, the Posts web part which outputs a formatted display of list items on the Category.aspx page of a blog site. The default web part was listed in the contents page (reachable using the "?contents=1" query string parameter) as a basic XsltListViewWebPart, which meant that I should be able to drop the Posts web part from Lists and Libraries in the web part gallery, set the view, and get the desired results. If only it were that simple.

No matter which view I picked, all the web part showed was a standard list view with rows and columns, not the nicely formatted view with the calendar page image, title link and summary information that I was after. Since it was a stock list view web part I knew it was using a view to fetch the data and then transforming it in XSL but there didn't seem to be any way to force it into using the correct view. Assuming that the view itself might be hidden from the drop-down selector, I turned to PowerShell to see if I could find out what was going on. I began by iterating through the web parts on the page to find the one I wanted and writing out the view ID...

Read more from Eric Shupps


Articles

Ten Steps to Optimize SharePoint Performance

Webcasts

Secrets of SharePoint Part 5: Configuring Microsoft Office SharePoint Server 2007 for Optimal Performance
Creating End User SharePoint Solutions for Performance and Scalability 
SharePoint 2010 Performance Enhancements for Administrators
Microsoft SharePoint Server 2010 for the ASP.NET Developer
Following Best Practices and Avoiding Common Errors with Microsoft Office SharePoint Server 2007 Development
SharePoint Performance and Capacity Planning Essentials
Troubleshooting Common Performance Problems in SharePoint 2010

Videos

Channel 9 Interview with Eric Shupps
SharePoint TechTalk - Different Views on Social Computing
SharePoint Post-Deployment Planning and Management

Podcasts

SharePoint Pod Show - Design for Performance
SharePoint Pod Show - Test Driven Development
Run As Radio - Eric Shupps Improves SharePoint Performance

Social

ConferenceHound
Talk TechNet
Channel 9
Planet SharePoint
Lanyrd
MVP Profile
About.me
Tumblr
Speakerfile
Facebook
LinkedIn
Google+
Twitter

Thursday, October 4, 2012

Setting up Server to Server Apps in SharePoint 2013

The SharePoint 2013 Application Model supports app development for both cloud and on-premise environments; however, there are distinct differences between the two implementations. In the cloud, apps rely upon an external authorization process to validate that an application hosted outside of SharePoint – in a vendor's data center, for example – is allowed to communicate with the SharePoint site where the app has been deployed. Within the enterprise, it is unlikely that an authorization server will be present or even necessary; rather, apps developed and deployed internally are assumed to have "high trust". In order to facilitate a high trust relationship in the absence of a pre-configured authorizing entity, a specific set of configuration tasks must be performed for each app that will be deployed...

Read more from Eric Shupps


Articles

Eric Shupps eshupps SharePoint Cowboy - Ten Steps to Optimize SharePoint Performance

Webcasts

Eric Shupps eshupps SharePoint Cowboy - Secrets of SharePoint Part 5: Configuring Microsoft Office SharePoint Server 2007 for Optimal Performance
Eric Shupps eshupps SharePoint Cowboy - Creating End User SharePoint Solutions for Performance and Scalability
Eric Shupps eshupps SharePoint Cowboy - SharePoint 2010 Performance Enhancements for Administrators
Eric Shupps eshupps SharePoint Cowboy - Microsoft SharePoint Server 2010 for the ASP.NET Developer
Eric Shupps eshupps SharePoint Cowboy - Following Best Practices and Avoiding Common Errors with Microsoft Office SharePoint Server 2007 Development
Eric Shupps eshupps SharePoint Cowboy - SharePoint Performance and Capacity Planning Essentials
Eric Shupps eshupps SharePoint Cowboy - Troubleshooting Common Performance Problems in SharePoint 2010

Videos

Eric Shupps eshupps SharePoint Cowboy - Channel 9 Interview with Eric Shupps
Eric Shupps eshupps SharePoint Cowboy - SharePoint TechTalk - Different Views on Social Computing
Eric Shupps eshupps SharePoint Cowboy - SharePoint Post-Deployment Planning and Management

Podcasts

Eric Shupps eshupps SharePoint Cowboy - SharePoint Pod Show - Design for Performance
Eric Shupps eshupps SharePoint Cowboy - SharePoint Pod Show - Test Driven Development
Eric Shupps eshupps SharePoint Cowboy - Run As Radio - Eric Shupps Improves SharePoint Performance

Eric Shupps eshupps SharePoint Cowboy on ConferenceHound
Eric Shupps eshupps SharePoint Cowboy - Talk TechNet
Eric Shupps eshupps SharePoint Cowboy on Channel 9
Eric Shupps eshupps SharePoint Cowboy on Planet SharePoint
Eric Shupps eshupps SharePoint Cowboy on Lanyrd
Eric Shupps eshupps SharePoint Cowboy MVP Profile
Eric Shupps eshupps SharePoint Cowboy About.me
Eric Shupps eshupps SharePoint Cowboy Tumblr
Eric Shupps eshupps SharePoint Cowboy Speakerfile
Eric Shupps eshupps SharePoint Cowboy Facebook
Eric Shupps eshupps SharePoint Cowboy LinkedIn
Eric Shupps eshupps SharePoint Cowboy Google+
Eric Shupps eshupps SharePoint Cowboy Twitter

Monday, October 1, 2012

SharePoint MVP for 2012 - 2013

Well, it's that time of year again, and Microsoft has seen fit to keep me in the MVP program for another go around.  This will be my sixth year as an MVP.  When I first came into the program there were only a few dozen SharePoint MVP's - now there are hundreds all over the world.  The yearly MVP summit used to be an opportunity to catch up with old friends you didn't see very often but with the growth of the group (which is still quite small compared with groups like SQL or ASP.NET) it's now become a way to meet new people you might not have even heard of before.  

For those of us who have been around a while, the quarterly renewal cycles can often be bittersweet - sometimes we have to say goodbye to friends who have moved on or focused their community efforts in other directions.  Despite what some people on the outside who have no knowledge of the inner workings of the program may think, it still takes a lot of work to attain and retain MVP status.  You don't have to be the brightest technical guru or constantly on the speaking circuit to become an MVP (although both of those certainly help) but you do have to put in the hours contributing to the community in whatever fashion suits you.  Not everyone has the capability or flexibility to continue contributing at a high level - life and circumstances change and sometimes there's just not enough hours in the day.  It's sad to see good people leave the program but always exciting to meet the new kids on the block.

So congratulations to all the new and returning SharePoint MVP's.  With a new product release on the horizon it's going to be a busy year ahead.  Be sure to join us all in Las Vegas on November 12th - 15th for SharePoint Conference 2012 for lots of learning and plenty of partying!
 
Articles
Eric Shupps eshupps SharePoint Cowboy - Ten Steps to Optimize SharePoint Performance

Webcasts
Eric Shupps eshupps SharePoint Cowboy - Secrets of SharePoint Part 5: Configuring Microsoft Office SharePoint Server 2007 for Optimal Performance
Eric Shupps eshupps SharePoint Cowboy - Creating End User SharePoint Solutions for Performance and Scalability
Eric Shupps eshupps SharePoint Cowboy - SharePoint 2010 Performance Enhancements for Administrators Eric Shupps eshupps SharePoint Cowboy - Microsoft SharePoint Server 2010 for the ASP.NET Developer Eric Shupps eshupps SharePoint Cowboy - Following Best Practices and Avoiding Common Errors with Microsoft Office SharePoint Server 2007 Development
Eric Shupps eshupps SharePoint Cowboy - SharePoint Performance and Capacity Planning Essentials
Eric Shupps eshupps SharePoint Cowboy - Troubleshooting Common Performance Problems in SharePoint 2010

Videos
Eric Shupps eshupps SharePoint Cowboy - Channel 9 Interview with Eric Shupps
Eric Shupps eshupps SharePoint Cowboy - SharePoint TechTalk - Different Views on Social Computing
Eric Shupps eshupps SharePoint Cowboy - SharePoint Post-Deployment Planning and Management

Podcasts
Eric Shupps eshupps SharePoint Cowboy - SharePoint Pod Show - Design for Performance
Eric Shupps eshupps SharePoint Cowboy - SharePoint Pod Show - Test Driven Development
Eric Shupps eshupps SharePoint Cowboy - Run As Radio - Eric Shupps Improves SharePoint Performance

Eric Shupps eshupps SharePoint Cowboy on ConferenceHound
Eric Shupps eshupps SharePoint Cowboy - Talk TechNet
Eric Shupps eshupps SharePoint Cowboy on Channel 9
Eric Shupps eshupps SharePoint Cowboy on Planet SharePoint
Eric Shupps eshupps SharePoint Cowboy on Lanyrd
Eric Shupps eshupps SharePoint Cowboy MVP Profile
Eric Shupps eshupps SharePoint Cowboy About.me
Eric Shupps eshupps SharePoint Cowboy Tumblr
Eric Shupps eshupps SharePoint Cowboy Speakerfile
Eric Shupps eshupps SharePoint Cowboy Facebook
Eric Shupps eshupps SharePoint Cowboy LinkedIn
Eric Shupps eshupps SharePoint Cowboy Google+
Eric Shupps eshupps SharePoint Cowboy Twitter