My SharePoint environment consists of 3 servers: SQL, App, WFE. SharePoint Foundation Web Application service is running on WFE. Which servers in my environment do I need to deploy WSPs (WFE and/or App)? I've been deploying to WFE and APP, but not sure if I need to deploy to both.

I am deploying using powershell. Do I need to run the commands on the app server or wfe server? Can I just run it on the app server? Does it not matter?


I guess you are using Add-SPSolution and Install-SPSolution to upload and install the WSP package. Add-SPSolution will move your solution to SP Admin database and Install SP-Solution will add create time job to push all feature files to 14/15 hive, DLL's to GAC, Web.Config changes etc to the Front end servers where you have "SP Web Application service" running. So it doesnot matter which server you are using to deploy your WSP. Since the solution functionalities will be always executed on your front end server, your app server doesnot need the WSP artifacts.

  • In the timer job constructor you can specify a server where to install the timer job to. This could be the local server - the one you used to deploy the WSP. So, if you are deploying this kind of timer job through your WSP it could matter which server you used to deploy the solution. – engineerer Aug 13 '19 at 6:41

It doesn't matter. Once a solution is deployed, the timer job will propagate the changes to all other servers.

That is the reason for packaging everything as a solution.

One the other hand, people tend to make direct changes to server (by editing files etc.) those changes will never get propagated.

Major steps to farm solution installation:

  1. Adding: A solution package is added by a farm administrator to the farm's solution store, which is in the farm's configuration database. This is done either with the SharePoint Management Shell (or with the object model). It cannot be done in Central Administration.
  2. Deploying: The solution package is unpacked, and its elements are copied to their appropriate places.
  3. Feature Activating: Features must be activated before they can be used, so activating becomes a third step of installation for solutions that contain Features. Features can contain content types, controls, custom actions, custom fields, files, workflows, list instances, list templates, event receivers, and document converters; although some of these cannot be included in certain scopes.

The deployment step for a farm solution creates a timer job. This timer job is used by the timer service on each web server in the server farm. The timer job also uses the SharePoint Foundation Administrative web service to access appropriate privileges to deploy solution files to each computer, so both services must be running on all servers for the deployment to succeed.

Initially, the package manifest is parsed to find assemblies, application pages, JavaScript, and other files that are not part of a Feature. These are copied to the locations specified in the manifest. All files contained within a Feature are copied to the Feature directory, a subdirectory of %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14(or 15)\TEMPLATE\FEATURES. After solution files are copied to the target computers, a configuration reset is scheduled for all front-end web servers; the reset then deploys the files and restarts Internet Information Services (IIS). Farm administrators can specify when this occurs.

Finally, farm solution Features are registered, and schema and definition files are committed to the configuration store.

Farm administrators can choose to deploy a solution on only some web applications in the farm.


  • I have SharePoint Foundation Administrative web service running on the WFE (not on the app server). If I save the farm solution (WSP) on the app server, and run the SP Management Shell on the app server to deploy solutions, is this all that is needed? Meaning I dont need to do anything on the WFE, right? – obautista Dec 19 '14 at 18:27
  • Seems like it does not matter. Deploying to the app server is fine. Timer job syncs up other servers (i.e. WFE). – obautista Dec 22 '14 at 14:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.