none
SharePoint 2013 Preview: Provider-Hosted On-Premise Apps Not Working

    Question

  • I am having issues trying to implement a Provider-Hosted App in SharePoint 2013 Preview On-Premise.

    I have followed the setup procedures in the follow articles:

    http://msdn.microsoft.com/en-us/library/fp179923(office.15).aspx

    http://technet.microsoft.com/en-us/library/fp161236(office.15).aspx

    When I execute my application from Visual Studio, I receive the follow message in the output windows:

    Active Deployment Configuration: Deploy App for SharePoint
    Uninstall App for SharePoint:
    Install App for SharePoint:
    Uploading the App for SharePoint...
    Installation is in progress (00:00:00)
    Installation is in progress (00:00:01) 
    Installation is in progress (00:00:........)
    Installation is in progress (00:13:15)
    App failed to install, cleaning up...
    Successfully uninstalled the App for SharePoint.
    Error occurred in deployment step 'Install App for SharePoint': Failed to install App for SharePoint.

    When I check the ULS logged I see the message:

    Error when try to get access token when deploy AppInstanceId <GUID> with AppPrincipalId <AppPrincipalId> Exception=Microsoft.SharePoint.SPException: The Azure Access Control service is unavailable.     at Microsoft.SharePoint.ApplicationServices.SPApplicationContext.GetApplicationSecurityTokenServicesUri...

    I didn't understand why the Azure ACS was being used for On-Premise Application development, so I added the reg key to disable the app principal access token check according to this article.

    http://msdn.microsoft.com/en-us/library/office/apps/fp179901(v=office.15)

    After doing this, the application was able to successfully install. I was asked to trust the application, which I did. After doing this, I attempted to launch the application from the Site Contents page, and received the following error when doing so.

    The parameter 'token' cannot be a null or empty string

    This error seems to be caused by the fact that the Content Token is not being passed in the request to my application which I assume is because I disabled the app principal token check.

    So, I guess my questions are as follows:

    - Why does the on-premise app attempt to use the Azure ACS and if so, why is this required and why is this unavailable?

    - What is the difference between an On-Premise App and a High Trust App?  My understanding is that High Trust Apps were for applications such as Exchange and other infrastructure related apps on-premise that require direct access to SharePoint data outside the context of a specific end user.

    - Do On-Premise, Provider-Hosted Apps actually work in the SharePoint 2013 preview and what am I doing wrong?

    Any help would be GREATLY appreciated.

    Thanks,

    Brett

    Wednesday, August 15, 2012 2:24 PM

Answers

  • Hi Brett,

    In SharePoint 2013 Preview, SharePoint-hosted apps and high-trust apps that use server-to-server protocol are supported on-premises.  The following are the links to the walkthroughs for those two types of apps:
    How to: Create a basic SharePoint-hosted app
    http://msdn.microsoft.com/en-us/library/office/apps/fp142379(v=office.15)
    How to: Create high-trust apps for SharePoint 2013 using the server-to-server protocol (advanced topic)
    http://msdn.microsoft.com/en-us/library/office/apps/fp179901(v=office.15)

    At release on-premises farm administrators will be able to configure their farms in a way that supports a broader spectrum of app types, and the storefront will appropriately enable/disable apps that can be used in the current on-premises environment.

    Thanks,

    Siew Moi

     
    • Marked as answer by BGrego Monday, August 20, 2012 10:33 PM
    Monday, August 20, 2012 10:29 PM

All replies

  • Hi,

    To create a provider-hosted apps for on-premises use, follow this walkthrough:

    http://msdn.microsoft.com/en-us/library/fp179901(office.15).aspx

    You can think of high-trust apps as provider-hosted apps for use on-premises.  It does not use ACS.  It uses server-to-server protocol.  I think there is where the confusion comes in...  server-to-server protocol is also used by Exchange.  High-trust apps is provider-hosted apps for on-premises

    You cannot use a cloud provider-hosted app "as-is" on-premises.  Because in a high-trust app, there is no context token, like cloud provider-hosted apps.  Also you need to run some configuration steps, etc for each high-trust app you want to deploy.

    >>>Do On-Premise, Provider-Hosted Apps actually work in the SharePoint 2013 preview

    Yes.  But you need to create the app following these steps:

    http://msdn.microsoft.com/en-us/library/fp179901(office.15).aspx

    Thanks,

    Siew Moi


    Saturday, August 18, 2012 4:08 AM
  • Siew

    I appreciate the response...

    If this is true, then Provider-Hosted App will not be available from the App Store for on-premise environments?

    What types of Apps will be support in the App Store for on-premise environement?

    Thanks,

    Brett

    Monday, August 20, 2012 4:26 PM
  • Hi Brett,

    In SharePoint 2013 Preview, SharePoint-hosted apps and high-trust apps that use server-to-server protocol are supported on-premises.  The following are the links to the walkthroughs for those two types of apps:
    How to: Create a basic SharePoint-hosted app
    http://msdn.microsoft.com/en-us/library/office/apps/fp142379(v=office.15)
    How to: Create high-trust apps for SharePoint 2013 using the server-to-server protocol (advanced topic)
    http://msdn.microsoft.com/en-us/library/office/apps/fp179901(v=office.15)

    At release on-premises farm administrators will be able to configure their farms in a way that supports a broader spectrum of app types, and the storefront will appropriately enable/disable apps that can be used in the current on-premises environment.

    Thanks,

    Siew Moi

     
    • Marked as answer by BGrego Monday, August 20, 2012 10:33 PM
    Monday, August 20, 2012 10:29 PM
  • That is what I was looking for.

    Thank you,

    Brett

    Monday, August 20, 2012 10:33 PM