Posts Tagged ‘SharePoint Hosted Apps’

The name “apps for SharePoint” is changing to “SharePoint Add-ins” & its official ( Any references to the app with-in the SharePoint eco-system will now be termed as Add-in. This is not limited to SharePoint but also Office.

But why this change? Some reasons we get from experts,

  • Microsoft’s multi-platform support of Office client across the Windows/Mac, iOS, Android and Windows 10 environments ended terming the Office client as “apps”, and so having “apps” within “apps” was causing confusion
  • Microsoft received multiple feedback that “apps” weren’t working in the enterprise space who were building something that was valued at much more than a simple app.

The notion also needed to be consistent here with the name change across both Office & SharePoint for the Office Store perspective.

Whatever may be the reasons, we just need to update our pointers from Apps to Add-ins. Below is the table that might help you to do that.

Original name New name Applies to
apps for Office Office Add-ins Office
mail app for Outlook Outlook Add-in Office
app for Excel Excel Add-in Office
app for PowerPoint PowerPoint Add-in Office
app for Word Word Add-in Office
apps for SharePoint SharePoint Add-ins SharePoint
app part add-in part SharePoint
app web add-in web SharePoint
SharePoint App Model SharePoint Add-in Model SharePoint
SharePoint Hosted App SharePoint Hosted Add-in SharePoint
SharePoint Provider Hosted App SharePoint Provider Hosted Add-in SharePoint

For any existing app you have developed & deployed, to update the app, you use the same product ID in the app manifest that you used for the original version. The version number in the app manifest should be greater than the version number of the original app or the most recent update. Within 24 hours after you upload your update to an organization’s app catalog, and within a week of uploading it to the Office Store, a notification that an update is available appears next to the app’s listing on the Site Contents page of every website where it is installed.

When you are developing an update, you don’t want to wait 24 hours every time you upload a new version to your test SharePoint app catalog.

  1. After the latest update is uploaded to the app catalog, open the Site Contents page on the website where the app is installed and choose the button on the app’s tile.
  2. On the call out that opens, choose the About tab. On the About page that opens, there is a notice that a new version is available.
  3. Choose the Get It button. The Site Contents page reopens, and there is a notice on the apps’s tile that the app is being updated.


Image Source: msdn

Why it takes 24 hours for an app to update is because SharePoint checks every 24 hours for updates to installed apps. A farm administrator can set this to another value by using the following SharePoint Management Shell command, where n is the number of hours between checks.

Set-SPInternalAppStateUpdateInterval -AppStateSyncHours n

If the value is set to 0, then the check is made every time the built-in timer job Internal app State Update executes, which by default is every hour. Farm administrators can use Central Admin to change the frequency of the timer job or run it immediately.

With the experience of working on webparts in SharePoint 2007 & 2010, I started creating a new SharePoint hosted app as soon as I set up my 2013 developer machine & VS 2012. With a little bit knowledge on the solution structure that every script we write should go in to the  App.js file, I quickly opened it. Visual Studio, pre-loads the file with a piece of code to display a welcome message with the current logged in user. In an urge to see my app working on the site, I deployed the app.

BANGGG!!  Visual studio threw its first error “Apps are disabled on this site“. Digging more in to it, found lot more goes at the configuration before an app can be deployed. Below are the various issues/errors I have faced and the solutions I have found to resolve them to get my app deployed & work successfully.

<<<GOLDEN RULE : Make sure you deploy your app only with an account which is not part of the farm administrators group>>>

“Apps are disabled on this site”

To resolve this issue, you need to configure App URLs in the central Administration. Open Central Administration -> Apps ->Configure App URLs

By opening this page you may end up with the below error.

“The Subscription Settings service and corresponding application and proxy needs to be running in order to make changes to these settings”

Reason being that app requires below two service application to be created & running.

  1. App Management Service
  2. Microsoft SharePoint Foundation Subscription Settings Service

Going to the System Setting -> Manage services on server, I saw both of these services Started & running without any issues.


Further debugging, when I checked the service applications list, I could see only the App Management Service application & not the Microsoft SharePoint Foundation Subscription Settings Service application.

Though App Management Service is created as part of the set-up, you need to create the later one manually. And the trick here is that you need to create it through PowerShell. Below is the commands..

>> $managedAccount = Get-SPManagedAccount “domain\accountname”
>> $appPool = New-SPServiceApplicationPool -Name SubscriptionServiceAppPool -Account $managedAccount
>> $serviceApp = New-SPSubscriptionSettingsServiceApplication -ApplicationPool $appPool -name “Subscription Settings Service Application” -DatabaseName “SubscriptionSettingsDB”
>> $serviceAppProxy = New-SPSubscriptionSettingsServiceApplicationProxy -ServiceApplication $serviceApp

Make sure you are using a managed account in the above snippet to avoid the object reference error. You can register your account as a SharePoint Managed account at Security -> Configure Managed Accounts in Central Administration (Being a dev environment we attempt to use our own domain account for installation/run services applications & app pools/farm administration. But remember the golden rule, don’t deploy app using the farm admin account. I would suggest, use your account only for developing & deploying but another service account to run the service applications & app pools). 

Now going back to where we started, Configure App URLs page, I got the below error.

“Settings or services required to complete this request are not currently available.  Try this operation again later.  If the problem persists, contact your administrator”

An IIS reset solved this issue. Once the page loads successfully, provide your app domain and the prefix details.


The App domain, in the production environment is the one that will be a registered domain with an entry made in to DNS. As of now your deployment adds a host entry like the ones below to enable viewing the app in your local farm.


These steps made sure that my app gets deployed successfully!!

Before you browse your app, some browser level settings needs to be done.

  1. Add your app domain site to the Local Intranet Sites list. To do this go to IE -> Tools -> Internet Options -> Security -> Local intranet -> Sites & add http://* (In my case it would be http://* ).
  2. If you are in a corporate network and using a Proxy, add your address in exceptions list. To do this go to IE -> Tools -> Internet Options -> Connections -> Lan Settings -> Advanced & under Exceptions add *


Now you should be able to browse your app from the site you have deployed. In case your app prompts continuously for credentials, the last step you need to do is to disable the loopback check.

To disable loopback, open the registry and go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA and create a new DWORD (32-bit) Value with a name of DisableLoopbackCheck and set the value to 1.  Restart the server after the change to ensure it takes effect.

And finally, you should be seeing your app loaded & the welcome message in the page.  Now you can start coding your app and just go on pressing the way old F5 to see the changes reflecting in your app 🙂

Do post if you face any other errors you come across in the comments section & Happy APPing 🙂