Was your SharePoint Help Search broken? Here’s why:

Recently, we had a ticket submitted to us regarding a SharePoint 2013 Foundation server who’s Help Search was in a broken state. Every time we tried to use the search, it would load a big nasty, multi-language error saying, “Sorry, the page you’re looking for can’t be found.”

Typically if SharePoint Help doesn’t work, it loads a blank white page, but, in this case, we get an error page.

SharePoint Help Search Broken

After much troubleshooting, we found some of our other SharePoint sites were having the same problem.

Some of the SharePoint sites were on 2010, others 2013. Also, it didn’t seem to matter if it was Foundation or Server – all of them had problems reaching the Search Help page. After worrying a bit that we may have a possible problem with all our SharePoint sites we host, we did some research.

We quickly discovered this problem affected more than just the SharePoint environments we host; it was a global SharePoint issue.

It seems as though the page that would do the search was just broken and had no relation to the SharePoint environment itself. The actual webpage Microsoft was hosting was broken. We found a TechNet article that had a posting from Microsoft regarding the exact issue and it stated:

“Regarding your concern with SharePoint, I can inform you that this is a general concern, and that is not from your system or configuration. We are working on this issue to try to find a solution as quickly as possible. One way to solve temporarily, in some cases, this concern would be as follows (with SharePoint 2010 she normally works well with SharePoint 2013, only in some cases):

  • Go to central admin url and replace “default.apx” by“ admin/privacy.aspx
  • Display Help from external Web Sites as specified by each Help collection. Click No.

This allows for local SharePoint help, but online help is still unavailable.

This workaround Microsoft provided disables the online help search, so it will only look toward local resources for help.  This isn’t a fix however, but it will get rid of the error page and will limit the search results to information store in the help files.

SharePoint Help Search Privacy Options

This is the SharePoint forum where we found this information regarding the help page being down for all SharePoint users.

Another TechNet article addresses the same problem:

However, before this blog was posted, Microsoft seems to have fixed the broken web page. The page would originally load to this resource, which is still down.

On this broke search page, if you navigate to the bottom of the page, there’s a link to Support which takes you to support.office.com. So you still can search for articles if you ever get that page. You’ll notice that the support.office.com page is now the new fixed link. Here is a link to the now fixed SharePoint Help page.

In that link, you’ll notice in the search terms the top one is “qu=test” and the bottom link is “query=help.” Below is a screenshot of the working search for the term “help”:

SharePoint Help Search

This help search page isn’t a unique website to SharePoint; it’s a support page Microsoft provides for a variety of their Office products.

The page has since been fixed by Microsoft, so if you have changed the help to look at the local resources by changing the settings on the privacy page, you can turn the “Display Help from external Web Sites as specified by each Help collection” back to “Yes.”

Read More
Tagged under

 

One of the greatest additions that was introduced in SharePoint 2013 is the app model. This allows for stand-alone apps that add additional functionality to SharePoint. They can be hosted in a SharePoint environment or hosted completely outside of SharePoint by the provider themselves.

Configuring SharePoint 2013 to use apps is actually fairly straightforward and easy. Microsoft has documented most of it in their Technet blog. However, two of the most common questions I’ve been asked are due to confusion around the DNS configuration and how to actually apply the SSL for apps.

Part of this confusion is centered on how Microsoft recommends configuring DNS and how most admins are used to applying SSL certificates. Yes, these two issues are related, so if you came here wondering how to apply your app domain’s SSL, then you may have already run into an issue like this with your SSL secured SharePoint site:

SSL secured SharePoint site

So, today I’m going to talk through the DNS and SSL configuration for SharePoint 2013 apps. (If your site isn’t using SSL, then you could skip that part I guess, but why not stay along for the ride anyways?)

Part 1: DNS Configuration

Step 1: You will need to acquire an app domain.

It is strongly recommended that this domain is separate from your site’s domain. For example:

Example Site = mytestsite.onfpweb.net

Example App domain = onfpwebapps.net (completely separate from onfpweb.net)

Step 2: Configure DNS for both the site and the app domain.

So first, let’s talk about what the URL of an app would be.

Whenever a new app is added into SharePoint, it will be given a unique name with the app prefix and an app ID. In my example, it would look something like app-7422a132061cd3.onfpwebapps.netSo each app will have a URL that will be a unique sub-domain of your chosen app domain. It would become a little monotonous to keep adding new ‘A’ records in DNS for each app that you add. This is why we’ll be configuring the wildcard CNAME record in step 2c below:

  • Note: If you want to test the app store locally on your server then you’ll need to configure DNS in your SharePoint environment’s domain’s DNS.
  • Note: If your users will be using public DNS to access the site, then the following DNS records would need to be created on your public DNS servers for your site and your app domain as well.

Below is an example of the DNS configuration in my test server’s DNS settings using internal IP’s. Obviously for public DNS, I would be using the external IP’s instead.

2a. If they are not already created, then create two new Forward Lookup Zones for your site and app domain:

Forward lookup zones for your site

2b. Create an ‘A’ record for your SharePoint site. (It is “mytestsite.onfpweb.net” in my example):

Create an ‘A’ record for your SharePoint site

2c. Create a wildcard CNAME record for your app domain that points to your site URL

Create a wildcard CNAME record for your app domain

points to my site’s Fully Qualified Domain Name

(In my example, the wildcard record for my app domain, “*.onfpwebapps.net” points to my site’s Fully Qualified Domain Name “mytestsite.onfpweb.net”.)

What the wildcard CNAME record is doing is directing any traffic that goes to somerandomurl.onfpwebapps.net (app domain) towards mytestsite.onfpweb.net (the SharePoint site’s FQDN):

wildcard CNAME record directs traffic

Part 2: Configuring SSL

Remember when we created the wildcard CNAME record for our app domain to use? This technically means that anyrandomurl.onfpwebapps.net will be pointing to the same IP address as my SharePoint site. So let’s talk about IIS bindings and how they relate to this situation:

IIS bindings

Every IIS site must have a unique binding. That means that some combination of the IP address, port and host name has to be unique on the server. This is to prevent any conflicts of multiple sites trying to serve the same requests.

Before IIS 8, in order to have multiple SSL’s, the most common thing to do was to use a different IP address for each SSL site. This is due to the fact that you couldn’t specify host names in the bindings for an SSL site. This leads back to the situation I’m in with my app domain configuration. My app domain is pointing to my site’s FQDN in DNS which means that it’s using the same IP address. So how will we work that out?

Step 1: Acquire a wildcard SSL for your app domain. 

(In this scenario, it is assumed you’re already using SSL for your SharePoint site itself.)

Since I’m doing this in a lab environment, I am just using a self-signed certificate. In a production environment, you will definitely want to purchase the wildcard certificate from a 3rd party certificate authority.

purchase the wildcard certificate

Step 2: Create a placeholder web application for your app domain

This step isn’t technically necessary since you can add the additional app domain binding to one of your other SharePoint sites in IIS, but I like to do it to separate my SSL bindings to different sites in IIS. This web application will have no site collections since it’s not actually hosting any app content (remember that SharePoint apps can be hosted off the SharePoint server itself). It’s basically just going to serve as a placeholder:

no site collections in the app domain

(Screenshot showing that there are no site collections in the app domain placeholder web application)

alternate access mappings

(Screenshot showing the alternate access mappings for this web application)

Step 3: Update IIS bindings to use the SSL’s

This is where the magic is going to happen. The reason we can use multiple SSL certificates with the same IP address in IIS 8 is because of the new Server Name Indication option(SNI for short). This allows us to specify host names for SSL secured sites. Here are the bindings for my two SharePoint web applications:

My app domain’s placeholder web application has one HTTPS binding that is using the wildcard certificate and no Server Name Indication (since SNI requires that you specify one host name and each app would be using a different host name).

app domain’s placeholder web application

My SharePoint site’s web application’s bindings also have one HTTPS binding that uses the site’s specific SSL certificate. This binding is using the SNI option to specify the host name:

SharePoint site’s web application’s bindings

I added a simple app part to the home page of my SharePoint site and confirmed that I am no longer receiving any SSL certificate warnings for my site or the embedded app.

Adding app to SharePoint site homepage

Hope that helped! Thanks for reading!

Read More
Tagged under

 

or “How I Use SharePoint After Work Hours…”

Selling Vinyl Records on SharePointIn the past, I’ve written blogs on using SharePoint to improve and streamline business processes. Being my first blog of the New Year, I’m going to take a different route. I’m going to illustrate how I use SharePoint to sell records.

Hopefully, you have a passion that translates easily to the same process I follow here.

These aren’t your boring business records that get filed away in a dank storeroom, but 12” vinyl records that are lovingly placed on a turntable to produce the most pristine music. It’s not all that lucrative (after all, I’m still thankfully employed full time at Fpweb.net), but it’s a way to offset my compulsive, vinyl collecting habit. So basically, it’s a way to deplete my collection and make a few bucks to, of course, buy more records.

It’s only been a about a year that I converted my previous process (completely manual with pallets of sticky notes and various stacks of records throughout the house) to SharePoint. And it’s been wonderful. It has saved me many headaches and second-guessing.

And really, it wasn’t all that hard.

The Basics of Creating a SharePoint List to Sell Records

I created three lists:

  1. Records I plan to keep
  2. Records I am selling
  3. Records I have sold

One convenience is all three lists track the same data (records), so I only need to use one content type. So I created a Vinyl Record content type and associated that content type with all three lists.

SharePoint Content Type

Vinyl Records Content Type

Using one content type provides the following two advantages:

  1. If I add (or delete) a column, I only need to do it from the content type. The change propagates to the lists.
  2. By using uniform metadata, it makes moving a record from one list to another especially easy. And ultimately, the plan is to move records from the Selling list to the Sold list.

That’s it for the basics.

Recap: One content type associated to three different lists.

Using Good Judgment

I’m a good record seller. If you ask me, I’m the best.

Why? Because I listen to every record that I sell. It’s the only way to apply an accurate condition to a record. While I’m speaking on the topic of condition, let me clear up something. A record that is sealed is not Mint. The condition should be graded as Still Sealed. It’s not unheard of for a sealed record to have defects that are only apparent upon play. A skip, a warp, or just some badness in the printing process that left the record full of static and noise.

But I digress… Anyway, so after I listen to a record I have to first decide if I want to keep it or not. If I want to keep it, then it goes in the first list, My Vinyl Records.

SharePoint List Edit Form

SharePoint List Edit Form

After the record is added, it’s displayed in the list which is sorted by ID. The ID is a SharePoint field that is automatically populated. It guarantees uniqueness.

SharePoint list

SharePoint list of My Vinyl Records

If it’s a record I may potentially sell or a popular record, I’ll write the ID on a sticky note and put it on the record jacket. This prevents me from getting my hundreds of Led Zeppelin IV copies confused with one another.

Or, if I have a record that I like but find a copy in better condition, I know which record to move from the My Records list to the Sell Records list. Of course, some musicians are off limits from being sold. All Iron Maiden, Alison Krauss, and Drive-By Truckers records that touch my hand are mine for good. Don’t question me…

If I listen to a record and I decide to sell it, it obviously gets put in the Vinyl Records for Sale list. Similarly, it is sorted by ID. Recently, I’ve realized I should always put a sticky note with the ID on any records waiting for sale. I haven’t in the past, and it has messed me up. So I’ve had to listen to U2’s Joshua Tree and Rattle & Hum albums several times to sort out the confusion. Which, depending on your viewpoint, could be a good or a bad thing.

SharePoint List 2

SharePoint List of Records to Sell

Leveraging SharePoint Lists

By having the data in lists, it makes it really easy for me to find whatever information I need at that moment. For example, I own a copy of Steely Dan’s Aja. And occasionally I’ll get my hands on other copies. I know I want a pristine copy (the sonics in the production demand it), so when I listen to any new copies, I can do a search:

SharePoint Search

Using SharePoint Search

After easily locating the record, I view the details, and then compare the copy I own to the copy I’m listening to. I then make an informed decision on which one to keep.

Viewing SharePoint List Item

Viewing SharePoint List Item

There are other advantages to using SharePoint lists. I’ll get into those next time. There’s some workflows and tricks with InfoPath Form that makes this process even easier.

Tracking personal sales probably isn’t something you’d want to expose on your company’s primary SharePoint site. But you can do something similar in MySites, or purchase a low cost personal plan from Fpweb.net to track sales, or to maintain inventory of a beloved collection, or even keep track of valuables for insurance purposes.

The most important thing is getting the data into SharePoint. Once the data is in there, you can always manipulate the process as you discover new things or come up with new ideas to even further streamline the process.

Like I said, next time I’ll get into some more interesting stuff, but I hope you discovered that SharePoint can be quickly set up for small ideas and that it doesn’t have to be relegated to only the business world.

Up the Irons!

Read More
Tagged under

 

 

How to scrub those GUIDs to rename your search service application databases in SharePoint 2013

One of the limitations of provisioning a search service application in SharePoint Foundation 2013 is that you have to use the Farm Configuration Wizard in Central Administration.

When using this method to provision the search service application, Microsoft is kind enough to append a GUID to the end of all the search database names. This is rather annoying for those of us that like to keep our SQL environments looking clean by using well formatted naming conventions for our database names.

So, how do we make those database names less messy?

I wish I could say that we could use the normal go-to, PowerShell, to provision search for Foundation, but no such luck…

Database names

Unfortunately, the ability to provision 2013 search service application through PowerShell is reserved for SharePoint 2013 Server Standard and Enterprise editions. If you have a Foundation server farm, then your options are limited. THE GOOD NEWS: If you are looking to automate the build, then there are some other options out there.

Gary Lapointe found a way to script the process using reflection, but his script effectively just provisions search the way the configuration wizard does, and does not provide a way to provide DB names. Jasjit Chopra took Gary’s script a little further and figured out how to specify the database names.

The biggest potential concern with using reflection to call the internal methods is that it’s not something that will be supported by Microsoft. So if you break your farm or if your search service application breaks then you’ll be on your own. I also would not do it on an existing production environment before testing it first.

There is another method to scrub those GUIDs from your search database names, and it comes straight from Technet’s article “Rename the Search service application databases in SharePoint 2013.” So today I am going to walk through those directions and add in some additional information.

Disclaimer: As always, I would recommend doing this on a test environment before attempting on a production environment. I also would only do this on a brand new search service application that has had no crawls run.

The first thing that we need is a registered managed account to run the search service. (You can do that in Central Administration -> Security -> Configure Managed Accounts).

The next thing we need to do is provision the search service application. I’ll provision it Microsoft’s way and use the Farm Configuration Wizard in Central Administration.

Farm Configuration Wizard in Central Administration

There are a couple of things to note here. Even though I’ve only selected the Search Service Application, the wizard will still provision the Usage and Health data collection service since that’s actually needed for the search application. Also, it will attempt to provision a new web application on port 80. (So if you receive an error about the port already being in use, then that is why).

Application Discovery and Load Balancer Service Application

search service application

Now that the search service application is in place, we can begin the steps to change the database names.

First, we need to make sure that the necessary pre-requisites are in place:

  1. The user account that you will be running PowerShell with needs to be in the “Administrators” group of the server that you will be running the PowerShell commands on.
  2. Your user account needs to be in the Farm Administrators group in SharePoint (You can verify this in Central Administration -> Security -> Manage the farm administrators group)
  3. Your user account has to have the database owner role on all of the search databases.
    (You can set this role in SQL Server Management Studio (SSMS) -> Security -> Logins -> right click and select the properties of your user account -> User Mapping -> Check the box next to each search database -> select db_owner -> OK)database owner role
  4. Your user account must also at least have db_creator and securityadmin roles in SQL.
  5. The search service account will need to have db_owner role on the Search Administration, Crawl, and Link databases. It will also need the SPSearchDBAdminrole on the Analytics Reporting database.
  6. SPSearchDBAdmin role
  7. The SQL instance will also need the max degree of parallelism set to 1.
  8. max degree of parallelism set to 1

Now that we have verified that all the necessary requirements are in place, we need to pause the search service application. It must remain paused until we’re finished renaming the databases. So it’s time to open a PowerShell console (whichever one you prefer) and run the following (Note: If your search service application is named differently, then you’ll need to make an adjustment to the name below):

$ssa = Get-SPEnterpriseSearchServiceApplication “Search Service Application”

Suspend-SPEnterpriseSearchServiceApplication -Identity $ssa

After the suspend command has completed, we can verify that the application is paused on the Search Administration page in Central Administration.

Search Administration page in Central Administration paused

Next up, it’s time to set the search databases to read-only. We can do this in SSMS by changing the properties on each database -> Options -> set “Database Read-Only” to True.

set the search databases to read-only

After they are all in read-only, they will look like this in SSMS:

Read only SSMS

Now it is time to back up the databases. We can do this in SSMS by right-clicking the database -> Tasks -> Back Up.

back up the databases

Rinse and repeat for each database. After the backups are completed, then it’s time to restore and rename the databases. This can be done in SSMS by right-clicking Databases – Restore Database. Here are the restore steps that I used:

  1. Select “Device” under the “Source” section.
  2. restore and rename the databases 1
  3. Add the backup file for one of the databases that was created earlier:
  4. restore and rename the databases 2
    restore and rename the databases 3
  5. Remove the GUID from the destination database:
  6. Remove GUID from destination database
  7. Go to “Files” and adjust the filenames for the data and log files as well by removing the GUIDs:
  8. adjust the filenames for the data and log files 1
  9. adjust the filenames for the data and log files 2
  10. Rinse and repeat for the remaining search databases. Here are some screenshots from after I finished these steps:
  11. Database screenshot 1
  12. Database screenshot 2

Now, we need to put the restored databases back into a write state by setting the “Database Read-Only” state back to “False” on each of the new databases:

Databases in Write State

Now, we need to update the Search Service Application to point to the renamed databases. Below is the series of PowerShell commands that I used. I pulled these from the TechNet article and substituted in some variables. First, let’s set some values to those variables:

$dbServer = “” ## You will need to adjust this database server variable for your environment.

$searchAppName = “Search Service Application”

$searchDB = “Search_Service_Application_DB”

$crawlDB = “Search_Service_Application_CrawlStoreDB”

$linksDB = “Search_Service_Application_LinksStoreDB”

$analyticsDB = “Search_Service_Application_AnalyticsReportingStoreDB”

 

Next up, let’s swap the search administration database:

$ssa = Get-SPEnterpriseSearchServiceApplication $searchAppName

$ssa | Set-SPEnterpriseSearchServiceApplication -DatabaseName $searchDB -DatabaseServer $dbServer

 

This will swap the analytics database:

Add-SPServerScaleOutDatabase -ServiceApplication $ssa -DatabaseServer $dbServer -DatabaseName $analyticsDB

$temp = Get-SPServerScaleOutDatabase -ServiceApplication $ssa

Remove-SPServerScaleOutDatabase -Database $temp[0] -ServiceApplication $ssa

 

Then the crawl store database:

$CrawlDatabase0 = ([array]($ssa | Get-SPEnterpriseSearchCrawlDatabase))[0]

$CrawlDatabase0 | Set-SPEnterpriseSearchCrawlDatabase -DatabaseName $crawlDB -DatabaseServer $dbServer

 

Next up, the links store database:

$LinksDatabase0 = ([array]($ssa | Get-SPEnterpriseSearchLinksDatabase))[0]

$LinksDatabase0 | Set-SPEnterpriseSearchLinksDatabase -DatabaseName $linksDB -DatabaseServer $dbServer

Now let’s make sure the Search Service App is back online:

get-SPEnterpriseSearchServiceInstance -Identity $searchServer

Do {write-host -NoNewline .;Sleep 10; $searchInstance = Get-SPEnterpriseSearchServiceInstance -Identity $searchServer} while ($searchInstance.Status -ne “Online”)

Before we resume the search service application, let’s check the Search Administration page in Central Admin to make sure we didn’t miss any databases:

Check Search Administration page in Central Admin

Looks like we can resume the search service application:

$ssa = Get-SPEnterpriseSearchServiceApplication $searchAppName

Resume-SPEnterpriseSearchServiceApplication -Identity $ssa

After that has completed, we can see that the status is back to running:

Status back to running

 

Once this is done, Microsoft recommends rebooting your search server.

There is one more thing that needs to be pointed out: In the scripts above to swap the databases, only the reference to the Analytics database was actually removed from SharePoint. So if you check the Database Upgrade Status page, for example, then you’ll still see references to the older databases:

Database Upgrade Status page

You can remove these databases with the following PowerShell that is mentioned in Marcel den Ouden’s blog.

get-spdatabase | where {$_.name -eq ‘db_name’} | foreach {$_.Delete()};

Remove databases from Database Upgrade Status page

So at this point, if you already have a web application and site collection created, then it’s time to test the service application by running a crawl. Hopefully after the crawl completes, you will find some search results in your site as I have here:

Test service application by running a crawl

That should do it! Hope this tutorial helped!

Read More
Tagged under

 

SharePoint Responsive DesignIn my experience, most organizations (and certainly their end users) would like to see some flair and customization with their SharePoint 2013 website. To that end, let’s talk about a little thing called Responsive Web Design and how to implement a responsive layout in SharePoint 2013. Yes, it’s time to take another walk on the Styled Side

Responsive Design and its importance in modern websites

What is Responsive Design?

Pioneered by Ethan Marcotte, Responsive Design is a web design approach aimed at crafting sites to provide an optimal viewing experience—easy reading and navigation with a minimum of resizing, panning, and scrolling—across a wide range of devices (from mobile phones to desktop computer monitors). -As defined by Wikipedia

Why is Responsive Design important?

Since the invention of the first mobile browser, the landscape of the Interwebs has been rapidly evolving.  Users are now digesting information on the web using a growing variety of devices and screen sizes. Unfortunately, SharePoint isn’t built to support this wide array of resolutions out-of-the-box, but it doesn’t have to end there. Here’s a quick overview on how to make your SharePoint site, responsive:

Make Your SharePoint Site Responsive

Get to know Responsive Frameworks

Responsive Design Frameworks

Responsive frameworks are a great tool for jump starting your responsive design and can greatly reduce the time it takes to get your code to production. They offer code libraries built around a fluid grid system which rearranges and scales your web elements to size – relative to the device they’re being displayed on. There are a number of frameworks out there. Two of the most popular are Twitter Bootstrap and Zurb Foundation.

You’re probably thinking, “Sweet, these are amazing tools for creating a responsive web site, but what about a Responsive SharePoint site?” Good question! Fortunately for us, the folks over at Codeplex have taken care of the leg work and ported over the resources to implement these responsive frameworks into a SharePoint site. You can find those resources and related documentation here.

Within a few minutes of downloading and installing the Codeplex resources, your SharePoint site layouts will have the functionality to rearrange themselves to fit the current resolution of whatever device you are using to browse with!

How it’s Done: A Brief Intro to CSS Media Queries

Media Queries is a CSS3 module allowing content rendering to adapt to conditions such as screen resolution (e.g. smartphone screen vs. computer screen). -As defined by Wikipedia

The graphic below shows a few common devices and their screen resolutions:

Responsive Screen Resolutions

  • 1200×1900 (desktop, portrait orientation)
  • 768×1366 (tablet, portrait orientation)
  • 480×800 (smartphone, portrait orientation)

To add custom styling for the different displays, insert your CSS code between each media query block below:

Custom CSS code

Move Your SharePoint Sites Forward

As the web evolves, designers and developers are forced to keep up with the way we display web sites and information across it. This holds true for SharePoint web sites as well. Fortunately, with CSS Media Queries and Responsive Frameworks, we have an elegant solution for users to view our SharePoint sites on any device.

Read More
Tagged under

 

 

(In a previous blog, Andy Milsark discussed some of the fundamentals of the SharePoint 2013 Evaluation site.  If you need basic understanding of the Evaluation site, check that one out, although I suspect we may repeat some of the same things here.)

In this post, we’ll discuss in more detail what happens in SharePoint when the evaluation site is created from beginning to end.

So, let start with generating the Preview Site. This can be done through the pink bar at the top of the page or through Site Actions -> Site Settings -> under Site Collection Administration is Site Collection Upgrade.

Site Collection Upgrade

From here, we want to click “Try a demo upgrade” and another window pops up to create the demo or preview site. When that is clicked, it adds an entry into a table in the content database which can be viewed in SQL management studio.

Try a demo upgrade

So, the first part of troubleshooting is making sure that the SQL entry is made. This is found in the table dbo.PreviewSiteRequests. In SQL, find the table and right click and “Select Top 1000 Rows“. From here, we can see the entry in the table. A fresh entry will look like this:

Select Top 1000 Rows
If you’ve already requested the site and it’s not being generated, you can see if the “RetryCount” is higher than 0 and if the Status is anything but a 0. If something becomes stale in here, the only way I know how to clear this entry out is to delete it, but this is against all Microsoft’s best practices and can cause Microsoft to reject any support request due to manually editing the content database. If your problem comes down to this entry, you will need to contact Microsoft’s support and have them walk through deleting the entry.

After we request the preview site and the SQL entry is created, we will need to either wait till 1:00 AM or manually kick off the timer job to create the site. Let’s manually kick off the timer job. Now we’re looking for the “Create Upgrade Evaluations Site Collection job” for the web application you’re trying to create the site for.

Once, we kick off the timer job, SharePoint beings its creation of the site. During this phase of the process, SharePoint will create an exact copy of the content database. SharePoint will also leverage the log file of the database to create and upgrade the site. Before you kick off this process, you want to make sure you have enough disk space to hold an exact copy of the content database and room for your log file to expand. Also, if you have any log file size restrictions, turn those off and let them expand.

If you do not remove those restrictions this can cause problems with generating the site and also problems with the SharePoint environment itself. It can be pretty hard to determine what’s causing a site not to generate because you most likely will not get a correlation ID with the error. It just won’t generate leaving you to solve a mystery of what went wrong. Here’s an example of a transaction log being full error pulled from the ULS logs:

Create eval sites job: Failed to create eval site for site [https://webappname], ID [0a77ce11-2c76-4269-bfb7-cd3645494899], Eval site [https://webappname/sites/root-eval], Content db [WSS_Content]. Exception thrown while copying site: Microsoft.SharePoint.SPException: The transaction log for database ‘WSS_Content’ is full due to ‘ACTIVE_TRANSACTION’. at Microsoft.SharePoint.Upgrade.SPSiteCollectionCopier.CopyOrMoveSite(SPMigratableSite msite, Boolean copy, Nullable`1 newSiteId) at Microsoft.SharePoint.Upgrade.SPSiteCollectionCopier.Copy(Uri newSiteUri, Boolean userHostHeaderAsSiteName) at Microsoft.SharePoint.SPSite.Copy(String newSiteUrl, Boolean hostHeaderAsSiteName, SPContentDatabase targetDb, SPDatabaseSnapshot snap shot) at Microsoft.SharePoint.Administration.SPEvalSiteCreator.MakeCopy(SPDatabaseSnapshot snpShot). Eval site creation will be retried during the next timer job run.

After the Evaluation Site is created, it still will look like a SharePoint 2010 site. This is because there is still one more timer job that runs. It is the Upgrade Site Collection Timerjob. This job takes the copy of the site SharePoint creates and turns it into SharePoint 2013. The end result will be your site as it would look if you ran an upgrade on the site.

Our test site, looks pretty much like a standard SharePoint 2013 site:

standard SharePoint 2013 site

Creating an evaluation site is a good way to determine any problems that might pop up on the site when upgrading from a SharePoint 2010 site collection and a good test to see if your environment can handle the upgrade from 2010 to 2013. Hopefully you find this blog helpful!

Read More
Tagged under

 

 

Hello there, readers! Today we’ll discuss a topic that is infamous for giving Admins problems: People Picker configuration, (particularly in One-Way Trust environments).

One reason that I think this particular topic causes issues is do the many caveats of People Picker and the lack of documentation or feedback provided during configuration. Nevertheless, after many trials and tribulations, I believe I have compiled a document that will navigate around these waters.

The People Picker control is used to find and “pick” users, groups and claims when assigning permissions in SharePoint 2013. It can be configured at the zone level for a farm with Stsadm.exe tool.

How to Configure People Picker in SharePoint 2013:

  1. First things first, we need a User account to be the “People Picker account”. The only real requirement of this account is to have Read privileges to the Active Directory membership on the Trusted Domain. CAVEAT: Do not use “special characters” such as * in your password for this account.
  1. Login to each Web Front End, (any server with SharePoint installed), and run the following on EACH server:

Stsadm.exe –o setapppassword –password <key>

Where <key> is the password you wish to set. The best practice for this would probably be to set it the same as the account password from step 1. CAVEAT: Must be the same on each server.

  1. While still on each Web Front End server, we need to check permissions on a registry setting. Open regedit and locate the following key:

HKLM > Software > Microsoft > Shared Tools > Web Server Extensions > 14.0 > Secure

The WSS_WPG account, (both local and domain if both apply), must have full access to this key.

  1. The next step can be done from any Web Front End server, (as long as it can communicate through the Trust which it should already be configured to do if the Trust is setup properly). Type the following command from command prompt:

Stsadm.exe –o setpropery –url https://<web app URL> -pn peoplepicker-searchadforests –pv  “domain:<TrustingdomainFQDN>;domain:<TrusteddomainFQDN>,<FullUsername>,<Password>

Where:

  • <web app URL> is the URL of the SharePoint Web Application
  • <TrustingdomainFQDN> is the full domain name of the Trusting Domain
  • <TrusteddomainFQDN> is the full domain name of the Trusted Domain
  • <FullUsername> is the domain/username of the User created in step 1.
  • <Password> is the password issued to the User you created in step 1.

Now this is quite a bit to chew on so I’ll also provide an example scenario to correlate with the above. In this example, FpwebON.local is our Trusting Domain and FpwebOFF.local is the Trusted Domain. Our Username/Password will be PPicker/Start321 and Fpweb.net is the URL. This is how our command would then look:

Stsadm.exe –o setpropery –url https://Fpweb.net -pn peoplepicker-searchadforests –pv  “domain:FpwebON.local;domain:FpwebOFF.local,FpwebOFF\PPicker,Start321

Where:

  • <web app URL> https://Fpweb.net
  • <TrustingdomainFQDN> FpwebON.local
  • <TrusteddomainFQDN> FpwebOFF.local
  • <FullUsername> FpwebOFF\PPicker
  • <Password> Start321
  1. Now when you run the command, it will always tell you it is successful whether it truly is or not. To ensure the property was set correctly, verify by using the following command:

Stsadm.exe –o getproperty –pn peoplepicker-searchadforests –url <web app URL>

This command should return the appropriate domain names if successful.

If, for any reason, you need additional commands to restrict what people picker views by OU, etc; please visit this Microsoft blog.

  1. Run an IISReset. This step isn’t actually necessary, but is something I will usually do before testing the site to ensure I am seeing the newest rendered page. (I also use a browser set to not cache.)
  1. Test it! On the site itself.

I hope this article helps some folks out there. The same process can be used for any number of scenarios with or without Trusts, but the One-Way Trust is the one that people seem to have the most difficulty with. As always, thank you for reading.

Read More
Tagged under

 

 

How to Fix Two Errors with SQL Server Reporting Services Subscription Issues

Recently, a client of ours had some specific issues with SharePoint and SQL Server Reporting Services (SSRS). The solutions were, I felt, rather cryptic. So I’m posting them here in hopes that they help others who may encounter these apparently rare issues.

The environment is pretty standard, one SharePoint 2013 Enterprise Edition web front end and a separate SQL Server 2012 Standard server. The reporting services service was started in Central Administration. And the reporting services SharePoint service application had been provisioned. These were done in accordance with Microsoft best practices.

Everything seemed to be good and fine. The SQL Server Reporting Services Content Types were available to libraries and reports were created using Report Builder. Wonderful…

It wasn’t until the client attempted to create subscriptions for reports that any problems surfaced. Basically, there were two problems:

  1. When creating a subscription with a SharePoint Document Library delivery extension, a delivery error occurs after selecting a Document Library. The error occurs despite using SharePoint’s navigation tools to locate the library.
  2. A subscription using an e-mail delivery extension can be successfully created. However, the subscription fails when attempting to deliver the email.

Initially, it appears as if these two issues were related. After all, they both had to do with subscriptions, and there seemed to be no other issues with SSRS. However, this wasn’t the case…

A Delivery Error Has Occurred

Let’s look at the first one. So here’s the problem in detail:

  1. When creating a subscription to a report, choose SharePoint Document Library as the Delivery Extension.
  2. SharePoint Document Library
  1. Now for the Document Library, click the button to open the Wizard.
  2. Open the Wizard
  1. Navigate and select the document library and click OK.
  2. select the document library
  1. Immediately receive an error!
  2. SharePoint error Document Library does not exist

Huh? The relevant part of the error is: “One of the extension parameters is not valid for the following reason: The delivery path is either not a SharePoint Document Library Folder or does not exist in the Share Point farm.” [Italics mine, the separating of Share from Point is not me].

Basically, you receive an error saying the library you selected doesn’t exist. But the library was found when using the wizard to browse to it. Infuriating.

So, what was the problem?

Once discovered, the solution was simple. The user attempting to create the report had two accounts in the site collection. One account was a claims account. The other account was non-claims.

Delete the non-claims report. All will be good.

Alternatively, you can also create a new user and use that user to create subscriptions.

Failure Sending Email

An email subscription has been configured.

email subscription has been configured

When the subscription runs on its scheduled time, the email is not sent and the Last Results columns reports an error: “Failure sending mail. The specified string is not in the form required for an email address. Mail will not be resent.”

Failure sending mail

Okay, first things first. Of course you want to verify the email you configured the subscription for is valid. So yeah. Do that. After all, it kind of sounds like a problem with the email address.

But it’s not. Because even if the email is invalid, SharePoint still reports a successful send.

SharePoint still reports a successful send

It seems only logical to check the Reporting Services Application service application in Central Administration. Check the email settings to make sure you are using a valid outbound SMTP server.

But that won’t be it either. Because when you have an invalid SMTP server configured, SharePoint provides the following detailed error message.

invalid SMTP server configured

So what was the problem?

As a test, I created a test site collection and went through the process of configuring an identical scenario. Unfortunately, I received the same result.

As another test, I created a new web application. I DID NOT receive the same result. I received the report subscription without issue.

So the issue was isolated to the web application. More precisely, it was related to the IIS site for that web application.

In IIS, I looked at the SMTP E-mail settings for the IIS site:

SMTP E-mail settings for the IIS site

Something identical to the following was configured:

SMTP email

As soon as I removed all SMTP E-mail settings, email subscriptions performed flawlessly.

Now here’s the somewhat odd thing: I tested all this on a new environment and I couldn’t duplicate the error. In fact, from my testing, the IIS settings for SMTP E-mail were being completely ignored.

So my suspicion is there was some other configuration on the client’s server that was instructing that web application to look and attempt to use the IIS settings first.

I haven’t investigated further at this time. Hope this helps!

Read More
Tagged under

 

 

If you aren’t familiar with the term WAF, (or Web Application Firewall for those who are acronym challenged like myself), then this blog is for you.

Essentially, a Web Application Firewall is an appliance, server plugin, or filter that protects servers from malicious web-based attacks by applying a set of rules to an HTTP conversation. Attacks that ISPs typically cannot protect against. Traditionally, this brings to mind the battle against SQL injections or cross-site scripting, but today’s WAF is so much more.

Fpweb.net is partnering with the leader in site security, Incapsula.

Incapsula is an Imperva Company and these folks have crafted the finest Enterprise WAF available on the market. It doesn’t just protect against SQL injections and cross-site scripting, it protects against illegal resource access and the other Top Ten OWASP threats. Incapsula also distinguishes between “good” and “bad” bot traffic. To add to the benefits, Incapsula’s solution is PCI certified without the need for any hardware or software installation, and requires no changes to your application. Gotta love a turn-key compliance!

But maybe you’re not worried about these threats. In that case, you’re probably already hosting with Fpweb.net in one of our State-of-the-art Data Centers. But for the rest of you – wouldn’t it be incredible if you could increase your site performance?

Increase Site Performance

Are your global users constantly having issues with responsiveness? Incapsula employs Global CDN & Caching to give that extra oomph to your remote users. Their Content Delivery Network (yep, the acronym has a real name!) uses intelligent caching and content optimization tools to accelerate responsiveness. The solution profiles the site resources and then identifies both dynamic and static cache-able content.

Customize to Fit Your Business Needs

I could rattle on about the other value adds from the Incapsula services, but I’ll let you check out the details for yourselves at www.incapsula.com. Be sure to read the available customizations that can be made to meet your specific concerns. Their WAF allows for customer-specific threat policy management, and your own custom security rules. With their Global CDN & Caching, you can set up your own custom caching rules too!  You get full control of your caching policy and you can manage it all directly from your own private Incapsula account. Their dashboard allows for a full view with analytics!

Critically Acclaimed, Secure WAF

It isn’t just my opinion that WAF’s bring value – even Gartner is talking about it! Their February 28, 2014 report, Web Application Firewalls Are Worth the Investment for Enterprises, is a must read for anyone concerned with security. Among their key findings: WAFs are different from next-generation firewalls and intrusion prevention systems in that WAFs protect custom web applications (think SharePoint) at a granular level.  Gartner summarizes that WAFs create the added security layer for most public-facing websites, internal business-critical applications and custom web applications. They are quick to point out in their analysis that most enterprises use the low PCI compliance standard to meet a successful audit when they should consider that compliance doesn’t always equal sound security.

I know, this all sounds great, but I can hear most of you now… “Thanks, but no thanks! I don’t want to spend the money and find out it doesn’t work.” And to that I say, “How about a two week free trial?” Feel free to call or email me or anyone else in the Customer Success department and we’ll get you started. We’ll help you set up the trial and customize it to meet your SharePoint site’s security needs, or get you in the system and let you customize it yourself if you prefer.

Don’t miss out on this great opportunity to implement a new WAF for your SharePoint site! And be sure to check out other great SharePoint solutions in Fpweb.net’s new SharePoint Solution Showcase!

Read More
Tagged under

 

Greetings again from your resident Fpweb.net Blogger, Steve Lattina!

For this post, I wanted to address a common question I hear about how to find how much space is available on a site. You could go through the trials of finding the Quota (if it is configured), finding the content database location, and examining the database. That will absolutely work, but what if you want to do it faster, and get some more valuable information?

Introducing WinDirStat! Well, this isn’t its first introduction. I wrote about how to use this WinDirFul (see what I did there?) tool in the past. If you are unfamiliar with this tool, feel free to read my blog Tech Tools Spotlight: WinDirStat first, or watch the Amazing Joe Bohac give a visual walk-through here in a special Joe Knows Support video.

How to Find How Much Space is Available on Your Site

Follow these steps and comment on how much you love it. Search your feelings, you know this to be true.

  1. You are going to want to map your site as a network drive. To map a Network Drive:
    1. Open ‘My computer‘
    2. Unfocus any selected drives and then click ‘Map Network Drive‘
    3. Select the drive letter that you want to use
    4. Under ‘Folder‘, enter the URL to the SharePoint library, ie. ‘http://www.mysite.com/Shared Documents’ (Please Note: You do not include the page name, ie. allitems.aspx, or the drive will fail to map properly)
    5. Click Finish.
      1. Notice in the screenshot below, you will need to specify your credentials for the site, and either use the folder as http(s) or \\networkpath.
      2. If you want the drive to appear permanently on your workstation, choose ‘Reconnect at logon’
      3. Map Network Drive
  1. Once that is completed, open WinDirStat (or any disk analysis tool) and select the drive you just mapped.
  2. Select WinDirStat Drive
  3. Click ‘OK’ and let it do its PacMan thing! When it is finished, you will have a very detailed page of File Structure, Top Content Types by Size used, and a Graphical Representation of the space used and count of the file types (this one is my favorite).
  4. File Structure
  5. Want to do one better? How about managing these file directly within this tool? If you see a file that is taking a large amount of space and you are sure it is not needed, you can delete it. Play around with this tool. You can click on the file types to highlight all of them in the bottom pane, or click any individual block in the bottom frame, or even by browsing the File Tree. It’s fairly robust, and powerful. Be careful though… With great power comes great responsibility. If you fully delete a file, it is gone for good.
  6. Be Careful Deleting

There you have it. While these instructions are covering some of the basic things you can do with this tool, there are more reasons to use this for management of your site. I will leave that to all you wonderful SharePoint Admins to determine your best uses though.

Read More
Tagged under
Top
We use cookies to improve our website. By continuing to use this website, you are giving consent to cookies being used. More details…