Application Catalog Uncovered

In Configuration Manager 2012 the application catalog also ships with a web service. In this post we explore the methods available in the web service and how you can use them in your own applications.

First of all if you try navigating to the web service definition (at: http[s]://CMApplicationCatalog/ApplicationViewService.asmx) you should be presented with the following screen.

We are getting this error because of a line in the web.config file, which you will find in one of the following locations, depending on your configuration.

  • <Drive>:\SMS_CCM\CMApplicationCatalog
  • <Drive>:\Program Files\SMS_CCM\CMApplicationCatalog
  • <Drive>:\Windows\CCM\CMApplicationCatalog

If you copy the web.config file incase anything goes wrong then open the live copy and look for the line <remove name=”Documentation” />. Once you have located this line (which should be in the <protocols> element), delete it.

When you have saved and closed the file, go back to your Internet Explorer window and refresh the page, you should then be presented with a list of available methods in the web service. In here you will find the following methods (ConfigMgr 2012 SP1):

  • AddPrimaryMachine
  • CancelApplicationRequest
  • CommunicationInfoForClient
  • GetApplicationDetails
  • GetApplicationRequestDetails
  • GetApplicationRequests
  • GetApplicationValuesForProperty
  • GetApplications
  • GetApplicationsMobile
  • GetInformationToMakeRequest
  • InstallApplication
  • InstallApplicationMobile
  • IsPrimaryMachine
  • RemovePrimaryMachine
  • RequestApplicationForUser
  • RetreiveCompanyBrandingSettings
  • RetreiveDeviceIdentity

You may also like to know that you can view the WSDL service description for the web service by appending ?WSDL to the end of the URL.

A lot of the feedback I have heard about Configuration Manager 2012 is the lack of extensibility for the application catalog. I have always shown people this method, which in the right hands of your software developers could be turned into a custom in house application without the need for lots of custom code. You can wrap this process around a proper approvals process however you can do the same thing very easily using the Application Approval Workflow along with System Center 2012 Orchestrator and System Center 2012 Service Manager.

Summary

So as you can see, we can see what is happening here, as well as this you can look at the code behind the built-in website which you will find in one of the directories listed above.

You can also call the web service in any flavour of programming language such as C#, VB.NET, PHP, C++ and many others including PowerShell using the New-WebServiceProxy cmdlet.

Once you have finished with the reference to the web service, make sure you replace the line in the web.config file for security. Happy coding!

Advertisements

Tags: , , ,

About Martyn

Martyn is one of the Senior Cloud Architects and DevOps Team Leader at one of the worlds leading Cloud Transformation Specialists Inframon. Martyn is responsible for the architecture of some of the largest Azure deployments in EMEA and is a advisor to a many businesses on their strategies. Martyn is a regular speaker at Microsoft events and community events on Azure and DevOps, giving his insight to a growing number of audiences.

4 responses to “Application Catalog Uncovered”

  1. Rafi says :

    I’ve been following your suggestion and can make calls to the web service. I’m trying to replace the UI of the System Center Configuration Manager 2012 Web Portal with my own customized UI. I’m using the SCCM ApplicationViewService web service to make the calls like you suggest. However they are not working as expected. The InstallApplication function simply registers the app on the user’s device but doesn’t actually install it. Any ideas? I think there are some client side calls that need to occur.

    • Martyn says :

      What deployment type is the application or does it have multiple? I would suggest running this in the proper agent and tracing the logs to see what happens, it may be you need some client SDK calls.

      • Rafi says :

        Not sure what you mean by agent. My code is running in an asp.net application. It grabs the user’s deviceId using a silverlight application sends that to the asp.net web service and then calls the web service methods you’ve listed above. I do think there are some client SDK calls that need to occur. The SCCM web portal installs the requested app immediately. So there must be some client API calls that are going on. Do you have any idea how to find out what they are?

      • Martyn says :

        The ConfigMgr agent? Web pages cannot install software so it triggers something to the client to begin the installation, I know this because when you click install it opens up Software Center which is part of the locally installed client.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: