I have been playing with the final release copy of SharePoint 2013 to get my feet wet and learn the new environment. The default style for 2013 is the Metro/Modern user interface layered onto a web application. It’s approachable and welcoming, as opposed to earlier version of SharePoint which felt foreign and different from every other web application or CMS I had ever used. The ribbon is still there in 2013, though its muted in many ways and only appears when needed.
One of the more interesting things added in SharePoint 2013 is the App Store or Marketplace. Microsoft has built a streamlined way to add plugin-style functionality to SharePoint while hosting them in a separate namespace either locally or in the cloud. This addition helps to fill in functionality needs for customers while providing a clean and easy way to add the functionality to a vanilla SharePoint installation.
After installing a demo copy of SharePoint 2013 at home, I was able to see the Microsoft hosted App Store at office.com from this install, but I wasn’t able to fully configure it for my demo without my own DNS running. So, I proceeded with a lab install at work and found the office.com pages would not render behind my corporate proxy like they did at home.
Proxy Server Causes Issues with the App Store & the Solution
Users who are installing SharePoint 2013 behind a proxy server are going to see out of the box issues with the App Store functionality issues until they resolve proxy configuration. The solution is actually quite simple, though not documented anywhere that I could find.
The first step is to get an idea of why the app store was failing to display data. To get a better idea, I turned on diagnostic logging as detailed in the Microsoft TechNet article, Configure diagnostic logging in SharePoint 2013. I found the PowerShell commands the easiest way to set this up. Once you have setup a logging location, restart IIS, open the App Store location and attempt to add an online web app from the Office Online Store. After you see the failure, open the log file and trace the errors surrounding the call to the App Store URL. Searching for office.microsoft.com was an easy to to find it in my testing.
Fixing the Problem
To set the proxy configuration for each of your web application, you will need to make changes in the web.config in the root of each IIS website. In the web.config, you will need to change:
<proxy usesystemdefault="True" proxyaddress="http://proxyserver:8080" bypassonlocal="True" />
or something similar based on your settings. This will enable the web application to be directed out the proxy server when trying to retrieve your web content to display.
I tried setting proxy settings for the IIS service account, the system default and other methods, but it wasn’t until defining it in web.config that I was able to resolve the issues.
Once these settings were in place, we got a happy SharePoint Store to browse and add from.