in

Dot Net Mafia

Group site for developer blogs dealing with (usually) .NET, SharePoint, Office 365, Mobile Development, and other Microsoft products, as well as some discussion of general programming related concepts.

This Blog

Syndication

Archives

Corey Roth [MVP]

A SharePoint MVP bringing you the latest time saving tips for SharePoint 2013, Office 365 / SharePoint Online and Visual Studio 2013.

How to: Fix content types that won’t unpublish from a content type hub

I’ve been doing a lot of work with content type hubs and sharing them between multiple SharePoint 2010 and SharePoint 2013 farms.  The main thing I took away from this experience is that.  Content Type publishing is easy to break and hard to fix.  In my particular case, I ended up with content types that were published by one Managed Metadata Service Application and I wanted them to be published by another service application instead.  If you just change the settings on your Managed Metadata Service Application proxy before unpublishing the content types, you are going to end up in a bit of bind.  The old content types won’t unpublish no matter what you do.

Here’s how you fix it.  From here on out we’ll refer to the bad content type hub and the good one.  The bad one being the one where the content types are published from but are no longer wanted.  What I have discovered is that if you change the Content Type Hub Url to an invalid address, we can get the types unpublished.  Run the following command in PowerShell to change the Content Type Hub to an invalid URL such as http://server/contenttypes.  Set the name of the Managed Metadata Service Application as appropriate to your environment.

Set-SPMetadataServiceApplication -Identity "Bad Managed Metadata Service Application" -HubURI http://server/contenttypes

You will get an error that says that it cannot activate the Content Type Hub feature but that is ok.  Now, you need to ensure that the content type hub is activated on the proxy.  Select the following options:

  • Consumes content types from the Content Type Gallery at http://server/contenttypes
  • Push-down Content Type Publishing updates from the Content Type Gallery to sub-sites and lists using the content type.

ManagedMetadataProxySettingsAllSelected

You can leave the other options checked or unchecked as desired.

Once you have configured the proxy, you need to make sure that this service application is associated with the web applications that you are having trouble with in the service application associations.  This may be the case already, but if it is not associated this content type hub won’t be present on the Content Type Publishing page in the site collection.

Now, we need to run a few jobs.  Go to Monitoring –> Job Definitions, and then run the Content Type Hub job.   Do this on the server farm that is hosting the Managed Metadata Service Application.  Check the job history to make sure it executes.  It usually is quite fast.  Now on the farm hosting the web applications that you are having issues with, run the Content Type Subscriber job for each web application.  If you did this right, you should be able to watch the job run on the Running Jobs page.  Sometimes, it takes quite a while.

ContentTypeSubscriberJobRunning

Once, it’s done, you can go back to the subscribing site collection and verify that the content types from the bad content type hub are no longer published.  Now you need to go back to the proxy settings of the bad Managed Metadata Service Application and uncheck the content type hub settings.

  • Consumes content types from the Content Type Gallery at http://server/contenttypes
  • Push-down Content Type Publishing updates from the Content Type Gallery to sub-sites and lists using the content type.

At this point, the bad content types are gone and we need to transition over to the new good Managed Metadata Service Application.  Set the Content Type Hub Uri to the new correct content type hub if you haven’t already.  You can use a similar PowerShell statement like the one we used above.  Next ensure that this service application is in the service application associations for the web applications you want to publish content types to.

Now, you are going to need to republish all of the content types.  Your best bet is to run a PowerShell script to do this.  There are some out there on the Internet, but I’ll post mine to the TechNet script center in the future.  Finally, go to the Content Type Publishing page of each affected site collection.  This is kind of a pain if you have a lot of site collections and I haven’t found a script to automate it yet.

    ContentTypePublishingRefreshChecked

    Finally, run the Content Type Hub job on the farm hosting the good Managed Metadata Service Application.  Once it has finished, run the Content Type Subscriber job on all affected web applications.  With any luck, you should have your published content types working in good order again.

    Comments

    No Comments

    Leave a Comment

    (required)  
    (optional)
    (required)  
    Add

    About CoreyRoth

    Corey Roth is an independent SharePoint consultant specializing in ECM, Apps, and Search.
    2015 dotnetmafia.
    Powered by Community Server (Non-Commercial Edition), by Telligent Systems