MSDeploy is excruciatingly slow.
As in, it has taken our build /deployment process from 3.8 minutes to 15.
Is there anyway to speed this up? The publish method we are using is WMSVC.
MSDeploy is excruciatingly slow.
As in, it has taken our build /deployment process from 3.8 minutes to 15.
Is there anyway to speed this up? The publish method we are using is WMSVC.
In my experience both IIS Web Farm Framework and MSDeploy is doing a really poor job of managing configurations between servers.
While the idea behind the Web Farm Framework and MSDeploy is awesome, I don't think any of those two have done a good job of doing the task. Of all the setups where I've tried to use either Web Farm Framework or MSDeploy, it has failed, or at best, run very unstable. Usually I have to revert to manually configuring servers and mirroring files, which is less than optimal in larger setups.
So I wonder if there is any IIS configuration management on the market which actually does a decent job of synchronizing files, site configuration, certificates etc.
We just had a situation where someone performed a deployment into the wrong system at the wrong time, yet nobody knows who did it, or when.
I looked in the Windows Event Logs on the target web server, and saw nothing that seemed to be from MSDEPLOY. Is there some kind of log? Even a log that just says, "a sync was performed at time by user"?
If there is no log, is there something I can do to force a log entry of some kind? For instance, is there a provider for writing event log entries, or one I can use to write to a file? I suppose I could run a script that would do some form of logging, but can the script be included in the package?
Sorry for all the questions, but this became a hot topic today!
Note that I want a log on the target web server. Either a log file, or an event log entry, but something for audit purposes that says "John deployed something at some time".
we're evaluating the usage of the msdeploy Web Deployment Agent Service for automatic deployments to our production servers.
One thing we can't find out about are potential security impacts.
For one thing, our web servers are of course secured (behind firewalls and load balancers) so only http(s) traffic is allowed from the outside.
Nevertheless, the web deployment agent runs integrated with IIS (the only thing facing outside), as it is accessible via http(s). So we fear that it could be potentially possible to gain access to the agent through the webs hosted on that IIS - and hereby gaining read and write access to all our webs.
How secure is msdeploy for usage in production environments?
Update: Production web server are running IIS7.
we're currently using the MS Web Deployment Tool to sync a live website and some WebServices from a staging box to two live servers.
The staging box hosts the site on any IP on port 17000, whereas the two live servers are load-balanced and have a different IP for each of them.
At present, I generate two separate packages for deployment - one for each machine - using the sync operation and specifying a DestinationBinding parameter as follows:
msdeploy -verb:sync
-source:WebServer,computerName=localhost
-dest:package="machinename.zip"
-setParam:type="DestinationBinding",scope="SiteName",value="ip_address:port:".
(Split across multiple lines to make it easier to read!)
I run this twice, with a different target filename and ip address for each of the two machines. When it comes to deployment, I simply do a sync from each package to its respective live site.
I know, I know - I should be able to do it by generating one parameterised package and then perhaps using the SetParamFile switch for each of the two Servers - believe me I'd like to, but the documentation on doing this is frankly non-existent.
Now I need to configure and deploy both HTTP and HTTPS binding for this site; including also the ssl cert that is to be used.
I've added an SSL binding for the site on the staging box - which uses a development cert (which will need to be replaced - or should the staging box be using the live cert?), and now the above command line has the effect of replacing the target IP on both http and https entries.
It appears that I cannot specify multiple bindings plus the cert information in the DestinationBinding value in the -setParam above, so anyone know how would I go about doing this?
Any help greatly appreciated.