Content Deployment – Step By Step Tutorial

I was looking around and realized that I couldn't find an easy set of instructions to set up Content Deployment in Microsoft Office SharePoint Server.

In this post, I'll show you how to set up content deployment from a staging site collection to a production site collection. For simplicity, I will host both site collections on the same server.

For a background on content deployment, see:

Create Production Site Collection

When setting up a content deployment path, the site collections must be in separate content databases so that the unique identifiers (GUIDs) do not conflict. The easiest way to ensure that the production site collection is in a different content database is to create it in a new web application.

Open Central Administration:

Under Application Management:

Select Create or extend Web application:

Select Create a new Web Application:

Choose an easy to remember port number, such as 12345:

Type in a user name and credentials to create a new app pool:

Type in a descriptive database name such as MOSS_PRODUCTION:

Leave all other settings at the default and click OK, then wait for the Web application to be created:

Click Create Site Collection:

Ensure that your new Web Application is selected:

Type in any name for the Title (it will be overwritten later):

Select "Blank Site" as the template. This step is IMPORTANT, because Blank Site is the only template that you can import any other template into:

Type in the names for the site collection owners:

Click OK.

Allow Incoming Content Deployment Jobs on the Production Site

Select Operation:

Select Content deployment settings:

Select Accept incoming content deployment jobs:

Select Do not require encryption and click OK:


Create Content Deployment Path from Staging to Production

Select Content deployment paths and jobs:

Click New Path:

Type a descriptive name for the path. Select the web application and site collection for the staging site. Then type in the URL of the Central Administration web site of the production site. Since we are putting both of our sites on the same server farm, the URL is the farm that we are on now.

Click Connect:

Once you see "Connection succeeded", select the web application and site collection that you created for production. You can also choose to deploy user names and security if you want the new site to have the same users and permissions.

Click OK.

Create Content Deployment Job

Click New Job:

Type a name, and then select the path you created:

Keep all other default values, and click OK.

Run Content Deployment Job

From the context menu on the job, select Run Now:

Refresh the page, and then click on the text Running:

Watch the status of the job:

When the status changes to Succeeded, you can click on the URL to the production site to verify that the content was deployed.

Run Quick Deploy Job

Select Quick Deploy Settings from the Quick Deploy context menu:

Select Allow Quick Deploy jobs along this path, and set the schedule to check every 10 minutes, then click OK:

Visit the staging site and edit a page:

Make some changes:

Publish the page:

Show the page editing toolbar:

From the Tools menu, select Quick Deploy:

The changes will be picked up and deployed to production within 10 minute:


Content Deployment Post by Tyler Butler:

MOSS SDK on Content Deployment:

TechNet on Plan Content Deployment:

TechNet on Design Content Deployment Topology:

Comments (76)
  1. Great post, Jackie. There is also some documentation of this process (albeit without the pretty pictures) over on Technet as well.

    There’s some topological overview as well:



  2. JT says:

    Having trouble deploying content. I’m using a single server, trying to make a job work with a path between two site collections in the same web application and getting only errors saying Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) at…

  3. Hi!

    I’m having the same problem. I’m trying to shared content between two site collections on the same machine( Intranet and Internet) but the job gives me timeout and nothing if passed 🙁

    Any ideias?

    Thanks in advance!

    Nelson Santos

  4. Deepak Aggarwal says:


    While creating paths, we are not able to see the web application which is in a seprate server farm. it is should web application which are only in same server farm? what should we do to deploy our content from staging to production enviorment?

    This will be a great help.


    Deepak Aggarwal

  5. Eric Ramseur says:

    Hey Jackie,

      How fast do you normally see the state go from preparing to running and have you seen the DST issue happen after or before the preparing?  Im on my second try to just move our top level site which is like 2 pages at most and SP is just reporting preparing.


    Eric Ramseur

    Software Engineer, Gridpoint Inc.,

  6. One of the big pain points with SPS 2003 was the fact that once you went to production all subsequent

  7. basil says:

    its very important article

    thank you very mauch

  8. A good third-party solution for deploying/replication content and apps is R-1 by Repliweb (  This solution automates the process of deployment and ties in workflow tools as well.  

  9. Tony Sloggett says:

    Your problem is most likely because the account that is running the timer job for the source or destination content deployment job does not have permission to the temporary folder that the job deploys to. Check you temporary folder permissions, and also stop the ows timer service and delete any temporary folders and files that have been left there.

    Also if you are running an interactive virus scanner make sure that you turn it off for the temporary folder.

    If none of that works, delete the job and path and re-create again, it’s the only way to re-verify the permissions on the destination. Good luck.

  10. anchorPoint says:

    This looks nice, but what about features, solutions packages and such? Are they also deployed or do you have to do that bit yourself?

    Does this content deployment-service mean that we can now expect to see the same Unique IDs on Webs, Lists, ListItems, etc. on both the stage server and the production server?

  11. Guru says:

    Hi JT, the problem you are facing is that you have both the site collection in the same Web App. create the destination site collection using a new web app(which will create a new content DB) and try.

    Also, please read this article carefully. Author, clearly mentions that Source and Destination site collections need to be from two different Web Application(meaning two different content databases).

    Hope that helps!

  12. ragubala says:


    I am trying to share some content between an intranet site and an internet website,which are in the same server but are different site collections and different web applications.Any ideas how I can do the shareing?



  13. wew says:


    i just want to asking 1 question…what is the different between microsoft office project server 2007 and micrsoft office share point 2007?

  14. sezai's blog says:

    I like step by step guides with screenshots Content Deployment – Step By Step Tutorial http://blogs.msdn

  15. Brandon C says:

    When I click Connect I get error html from the destination server with the text "File not found" in it.

  16. Brian Carnes says:

    It is really not user friendly to have the Comment Notification link visible when I’m typing the post.  I clicked the link before submitting and lost my post.  The short version…

    Thank you for the screen shots. Not just "pretty", but save me minutes of translating text to UI; quickly put me in context; gave me confidence I understood post.  Wish more bloggers took the time.

    Came across your post while searching for resolution to Status Preparing message, which seems frozen.

  17. Jeff says:

    FYI, Also would like to note. That do not name the destination site the exact same as the source site or the path creation will fail. "Source and destination Site collection cannot be the same".

  18. Jason says:

    I would like to know if there is a way to generate a report or log of content changes using the stsadm command or another utility once a content deployment job runs…

  19. Pankaj says:

    When ever i try to run the job it gives me this error—

    The specified name is already in use. A list, survey, discussion board, or document library cannot have the same name as another list, survey, discussion board, or document library in this Web site. Use your browser’s Back button, and type a new name. at Microsoft.SharePoint.Library.SPRequest.CreateListOnImport(String bstrUrl, Guid& pguidListId, String bstrTitle, String bstrDescription, Int32 lTemplateID, String bstrFeatureId, Guid guidRootFolderId, Int64 llFlags, Int32 iVersion, Int32 iAuthor, String bstrFields, String bstrContentTypes, String bstrImageUrl, String bstrEventSinkAssembly, String bstrEventSinkClass, String bstrEventSinkData, Guid guidDocTemplateId, String bstrViews, String bstrForms, Boolean bCompressedSchema) at Microsoft.SharePoint.Deployment.ListSerializer.CreateList(SPWeb parentWeb, Dictionary`2 listMetaData, Boolean usingPublicSchema) at Microsoft.SharePoint.Deployment.ListSerializer.SetObjectData(Object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector) at Microsoft.SharePoint.Deployment.XmlFormatter.ParseObject(Type objectType, Boolean isChildObject) at Microsoft.SharePoint.Deployment.XmlFormatter.DeserializeObject(Type objectType, Boolean isChildObject, DeploymentObject envelope) at Microsoft.SharePoint.Deployment.XmlFormatter.Deserialize(Stream serializationStream) at Microsoft.SharePoint.Deployment.ObjectSerializer.Deserialize(Stream serializationStream) at Microsoft.SharePoint.Deployment.ImportObjectManager.ProcessObject(XmlReader xmlReader) at Microsoft.SharePoint.Deployment.SPImport.DeserializeObjects() at Microsoft.SharePoint.Deployment.SPImport.Run()

    Can u plz help to resolve this issue

  20. 2007 MOSS Resource Links (Microsoft Office SharePoint Server) Here is an assortment of various 2007 Microsoft

  21. Jeff says:

    I was having the problem of the deployment job getting stuck on ‘Preparing’. It was not the Timer service. Was not the account. It turns out that you need to make sure that both servers have the same settings as far as SSL are concerned. If one is requireing it and the other is not it will just sit and spin. No log or error will be generated till it times out then you will be left wondering what happened. So make sure that both exporting server and importing server are on the same SSL Setting.

  22. Jeff says:

    I was having the problem of the deployment job getting stuck on ‘Preparing’. It was not the Timer service. Was not the account. It turns out that you need to make sure that both servers have the same settings as far as SSL are concerned. If one is requireing it and the other is not it will just sit and spin. No log or error will be generated till it times out then you will be left wondering what happened. So make sure that both exporting server and importing server are on the same SSL Setting.

  23. Feature extensions to the WSS blog site template extends the wss blog template – Check it

  24. John Roe says:

    Content deployment is an excellent way to publish SharePoint content between farms. A few things to keep

  25. JY says:

    What about stage and production web application have different web config file and we don’t want the stage one overwrite the production one?

  26. useful links for sharepoint 2007 customization

  27. I’ve had a large number of emails from .NET developers who want more information about SharePoint Development.

  28. Andy says:


    I can’t see the content deployment links on Central Admin Operations tab.  Does anyone know why these would not appear?  Data Configuration is the last section on the right hand column of links.



  29. Barry D Noble says:

    I don’t see any graphics between the topics.  They only show up as boxes with x’s in them.  Is there a way to see them?

  30. fadinoja says:

    I have the same issue.  the images don’t exist anymore….

  31. fadinoja says:

    the site that references all the images is down…..

  32. John says:

    Hi Jacky, great post! Can you check you images used in this blog entry? I also can’t see them.

  33. Content Deployment Jobs its a new feature that comes with Microsoft Office SharePoint Server 2007, and

  34. Two great blog entries describing MOSS Content Deployment and how to configure it:

  35. Two great blog entries describing MOSS Content Deployment and how to configure it: http://blogs.msdn

  36. Denny says:

    While trying to create a new path, I am getting the error : Client found response content type of ‘text/html; charset=utf-8’, but expected ‘text/xml’.

    The request failed with the error message:

    Can somebody help please?

  37. Sodhi says:

    I am getting same error message:

    While trying to create a new path, I am getting the error : Client found response content type of ‘text/html; charset=utf-8’, but expected ‘text/xml’.

    The request failed with the error message:

    Can somebody help please?

  38. Faraz says:

    For the

    " Client found response content type of ‘text/html; charset=utf-8’, but expected ‘text/xml’" error make sure that you are entering the port of the central administration Web application along with the host name in the textbox. I got that error because I didn;t append the port to the url and the server was actually trying to connect to my content web application at that point instead of central admin, which prompted the error.

  39. Thanks for a great article about content deployment!

  40. Martin Mc says:

    Great posting, much clearer than the MOSS adminitrator’s companion!

  41. iyad says:

    where are the photos ????????????????????????

  42. Nuz says:

    The images are not showing. Please make available


  43. ak says:

    this would be great if i could see the photos!

  44. Chali says:

    hi Jackie,

    Please check your picture’s url. All of them are invalid linkage now……

    Thanks for the great article!


  45. mikel says:

    Any chance of getting the pictures fixed?  I’d really like to see how this is done.  Thanks!

  46. calig says:

    great post, can we see the images? Thanks!

  47. herlina says:

    The images are not showing. Can you please fix?


  48. lilupat says:

    pls fix your God Damn pictures

  49. Pat says:

    Pls fix your images or delete this blog

  50. cyberjp says:

    Can you update your Web page so that we can see images ?

  51. Denny says:

    Use the link tat FER posted to see the images

  52. Sandip Nirmal says:

    It’s great artical for site collection migration!!! Thanks for that!

    But I want particular contents of site to be migrated. For eaxample migrating Lists, Documents etc. So how to do that?

    Thanks in advance…..

  53. Hanz Blog says:

    Farm Topology This article assumes you have two server farms: one internal farm in your corporate intranet

  54. Praveen Modi says:

    Excellent article Jack. However the screen shot are not appearing for me. Are the images reference wrong path?

  55. Dnyaneshwari says:


    I have installed Sharepoint VHD, and did try out the above steps but got stuck when the gave source web application path and gave http://litwaredemo:port number/foldername as URL for destination Central Administration server.

    i get error saying "you have specified a URL that begins with http://. Communication to this URL will not be secure and can not be intercepted by malicous users."

    so i have https://litwaredemo:port number/foldername

    and clciked on Connect button.

    It says Either the URL for the destination web application is not valid, or you do not have permissions to the central administration site on the destination server farm.

    Error Details: The remote upload web requested failed.

    I want to know the reason why this happend.

    Waiting for your support



  56. Mike says:


    We got this error during content deployment as well:

    Content deployment job ‘MyContentDeployment’ failed.The exception thrown was ‘System.InvalidOperationException’ : ‘Client found response content type of ‘text/html’, but expected ‘text/xml’. The request failed with the error message [html ... ] There is a problem with the resource you are looking for, and it cannot be displayed. [ … /html]

    It was occurring at the end of the export task.  Turned out the Destination Central Administration Web App was broken.  That’s where this error is coming from – the end of the export task is the first time the Source farm tries to talk to the Destination farm.

  57. Dexter says:

    Hi Dnyaneshwari,

    I think I know what issue you are seeing is.  Basically, you would have to go back to the Content Deployment Settings page (_admin/Deployment.aspx) and make sure you select the option "Encryption not required" on one of the radio buttons there.  By default, it is set to require encryption (https).  Once you select "Encryption not required", then you should be able to create a Path and just use "http://centraladminURLofDestination" and not "https://…".

    Hope this helps.

  58. Richi says:


    I am unable to see the images on this tutorial 🙁  Is there something wrong with my browser?!

  59. reza says:


    I cannot see the pictures, please refresh them!

  60. Sriwantha Sri Aravinda says:

    buddy this is not working, although I get a connection test passed during the test run, the job fails during the actual full run. I am deploying to a site collection

  61. Evgeny says:

    Thanks a lot.

    This works fine for me in my siple case.

    Best regards,


  62. Evgeny says:

    Thanks a lot.

    This works fine for me in my simple case.

    Best regards,


  63. Venky Krishnan says:

    I have a customer that is looking to be able to track changes between what is in stage and what is in production. Is there a web part that allows you to track changes to the content in a visual way with aids like Word, before it is approved to be moved to production.

    Is there a way to do this ?

  64. Mpellos says:

    @Tony Sloggett : Had the same problem with access denied errors when trying to publish content from one site collection to another one in the same server. Changing the user of the Timer service of SharePoint fixed the problem.

    You saved my life man, thanx!

  65. ashok says:

    The post helped a lot but it would be better if the images were visible.

  66. Shar SAP says:

    To deploy site from development to production server I have created deployment path. That’s created successfully. But when I run the job to actually deploy the content it shown me

    Content deployment job ‘Quick Deploy job for path ‘External Server Deployment” failed.The remote upload Web request failed.

    I have checked that no firewall restrictions are blocking me. Request goes to the remote server and also coming back with finish packet.

    So Please help me out.

  67. subbu says:


    We can do backup and restore also ryt?

    By creating a content database in production server ,so that there will be no conflicts of GUID…

    Coz i had done like this only to get the sitecollection from stagging to production.

  68. Anhony Grace says:

    You should not be moving content from staging to production; content is added to production via the browser (typically), then moved to staging/dev as needed.

  69. nandu says:

    very nice tutorial really useful for beginners

  70. Naresh says:

    Hi Stefan,

                 I have doubt in content deployment that, if we run the content deployment job, will it be deployed the search scopes from source to destination site?

    if it is yes, will it be overwritten the existed scopes in destination?



  71. Lalit Borase says:

    One important thing i would like to share….

    While creating the destination site collection (production site collection in this case), don't choose any template, not even 'Blank Site'. Because for import you need an empty site collection and Blank site template does not refer to an empty site collection and content deployment will fail. Instead choose <Select Template Later> in the Custom tab.

  72. sema says:

    the deploy user names and security information doesn't help carrying over permission changes via incremental job. is there a reason for it? Thanks

Comments are closed.

Skip to main content