It has been over two years since we had a new version of Web Deploy. Which makes me feel the team is no longer working on this project. Is there any alternative that is upcoming to replace this feature ?
Why is there no new releases after Web Deploy 3.5 ?
msdeploy: can it migrate from iis 7.5 to iis 8.5?
Is this supported?
(I keep getting errors related to applicationHost.config , detailed here: http://stackoverflow.com/q/32196315/147637 )
One guy on stackoverflow says that msdeploy does not support migrating across these iis versions...
What is the skinny?
Thanks!
Offline Installer for Recommended Server Configuration for Web Hosting Providers
I am trying to setup a new server where my code will be published using Web Deploy 3.5. For all the previous servers, I installed Web Deploy 3.5, Web Platform and then from Web Platform I searched for "Recommended Server Configuration for Web Hosting Providers" and installed it.
By doing this, I was able to publish all the code using Continuous Integration Process.
For my new server, there is NO internet setup. Hence, I need to offline installers to enable Web Deploy automated push. I installed Web Deploy, Web Platform Installer, but for "Recommended Server Configuration for Web Hosting Providers" option I have no clue.
Please provide me a link for offline "Recommended Server Configuration for Web Hosting Providers" installer or any other I can setup this on my new box.
Registering a COM object using web delploy
Hi Folks,
I have a web project that is being deployed using Web Deployment to a local folder (to create the cmd and zip file) which we then run from the command line to do the deployment to a web server set up with Web Deploy 3.6.
One thing I need to do is publish a COM control in with the application. The DLL and TLB file get copied into the bin directory on publish, but I then need to run regsvr32.
Does anyone know how I set up the publishing project to run this command after the publish is performed?
Regards
Andy
Skip subfolder when website backup using msdeploy
Hi All,
Is it possible declare xpath parameter for skipping subfolder when website backup using msdeploy? For example, skipping App_Data directory works well:
msdeploy -verb:sync -source:backupManager
-dest:backupManager="SiteName",
wmsvc="https://ServerName:8172/msdeploy.axd?site=SiteName,userName="UserName),
password="Password" -allowUntrusted -skip:xpath=dirPath[@path='App_Data']
But when I am trying to skip App_Data/Items it does not work:
msdeploy -verb:sync -source:backupManager
-dest:backupManager="SiteName",
wmsvc="https://ServerName:8172/msdeploy.axd?site=SiteName,userName="UserName),
password="Password" -allowUntrusted -skip:xpath=dirPath[@path='App_Data/Items']
I tried slash/backslash and double slash/backslash and no result.
Thank you!
Bug Report: IIS 7.5->8.5 "-verb:sync -source:webServer" fails with error
msdeploy 3.6
Over the wire, server to server, with params: "-verb:sync -source:webServer"
Works great going IIS 8.5 ->8.5
But 7.5->8.5 chokes. Details here: http://stackoverflow.com/q/32196315/147637
The only known workaround also posted on that thread
What to do with Server Side Includes?
Microsoft's instructions for Migrating a Web Server from IIS 6.0 to IIS 7, found here: https://technet.microsoft.com/en-us/library/Ff633422(v=WS.10).aspx under the Installing Required Software Components on the Destination IIS 7 Web Server says: Important: Do not install Server Side Includes.
However, when I run the msdeploy -verb:sync -source:webserver60,computerName=XXXXXXX -dest:webserver60 -whatif > msdeploy_test.log for the intranet side that I need to migrate, I receive the following: Warning: The DependencyCheckInUse rule handler detected ServerSideInclude. Use Windows Setup to install the component.
Does anyone know why Microsoft says not to install server side includes in their document and what course of action I need to take?
Thanks
Making MSDeploy deployment secured by enabling 443 binding
I have setup continuous integration for my entire project. But now I came to know that by default all the deployment are done by HTTP/80 connection.
I need to do this for pushing code my DMZ servers.
Is there a way to make CI or MSDeploy secured by enabling HTTPS/443 bindings.
Can anyone please let me know how can i change this default 80 port to 443?
How to resolve ERROR_CERTIFICATE_VALIDATION_FAILED issue
I am trying to make a SECURED deploy using this command line -
Package.deploy.cmd /y /M:https://XXXXXX:8172/MSDeploy.axd /U:"UserName" /p:"Password" /a:basic
But when I execute this, I get an error ERROR_CERTIFICATE_VALIDATION_FAILED
Error: The remote certificate is invalid according to the validation procedure.</div>
This error is resolved when below command line is used -
Package.deploy.cmd /y /M:https://XXXXXX:8172/MSDeploy.axd /U:"UserName" /p:"Password" /a:basic -AllowUntrusted -verbose
I DONT want to use allowUntrusted certificates, userName and Password, as it can be seen in my TFS logs. I want to pass appropriate certificates in above command line to make a secured deploy. Also, need to avoid providing User/Pass
Any help would be of great help !!!
Issue while deploying code using IIS Manager User
I am able to deploy successfully using my windows Id, but I face a issue during IIS User deployment.
Details:
Tried applying all permissions-Local Service, IUSRS, MSDeploy specific permissions
Command Line: MyPackage.API.deploy.cmd /y /M:https://XXXXXX:8172/MSDeploy.axd /U:"XXXXXX" /p:"XXXX" /a:basic -AllowUntrusted -verbose
Error: The remote server returned an error: (401) Unauthorized.
Event Log: The description for Event ID 1104 from source Microsoft-Windows-IIS-IISManager cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component
on the local computer.
If the event originated on another computer, the display information had to be saved with the event.
The following information was included with the event:
IISWMSVC_AUTHORIZATION_SERVER_NOT_ALLOWED
Only Windows Administrators are allowed to connect using a server connection. Other users should use the 'Connect To Site or Application' task to be able to connect.
Process:WMSvc
User=msDeployUser
the message resource is present but the message is not found in the string/message table
Can any one please let me know what am I missing here ?
MSDeploy API with Certificates
Can any one please tell me how can I bind a certificate while deploying a project to remote server using MSDeploy API(.NET - C#) ?
Cannot decrypt SSLCertHash
I tried to move a website from IIS 7.5 to IIS 8 and it cannot decrypt the sslcerthash. I then tried to run the sync on the source server and got the same error. Here are the commands and output from the source server where the package is created and the decryption fails.
Any ideas?
C:\Program Files\IIS\Microsoft Web Deploy V3>msdeploy.exe -verb:sync -source:metakey=lm/w3svc/10 -dest:package=d:\temp\devgwcycle3.zip,encryptPassword='1' > WebDeployPackage.log
C:\Program Files\IIS\Microsoft Web Deploy V3>msdeploy.exe -verb:sync -source:package=d:\temp\devgwcycle3.zip,encryptPassword='1' -dest:metakey=lm/w3svc/99 -whatif> WebDeployPackage.log
Error: The property 'blob' located at '/metaKey[@path='/lm/w3svc/10']/metaProper
ty[@name='SSLCertHash']/cert[@name='MY\CC2BFD89445A22EC72C7B96833799E6D024FEF85'
]', could not be decrypted. The password may be incorrect.
Error: Padding is invalid and cannot be removed.
Error count: 1.
thanks,
Hugh
Multiple POST SYNC
Is there a way to provide multiple post sync commands in a single msdeploy command line?
i.e. if I need to start and stop a windows service or app pools
Safe to use Web Deploy in a highly available environment?
Is it safe to deploy IIS applications with WebDeploy in a production environment? Is it able to provide a zero-downtime upgrade for example?
Or will IIS drop/deny HTTP connections during deployment? Or how would it handle persistent connections?
Is it advisable to disable the system in a loadbalancer in front of the IIS systems during deployment?
How to make deployment secured by providing a TRUSTED certificate ?
Right now, I am able to deploy to multiple machines using -allowUntrustedCertificate. I wanted to make the deployment proper and secured by providing a trusted certificate.
I have already created one cert. Now, I need to know
1. Where should I bind it after cert install ?
2. How to pass this new cert name in the command line
Provider 'machineConfig32' does not support setting 'NetFxVersion'
Before execute my operation, I followe the instruction and change order of thesupportedRuntime elements to make "v4.0" first on my source machine, because my source machine is windows 2003 32 bit, and my destination machine is windows 2012 R2 64 bit
Then I use this command: msdeploy.exe -verb:sync -source:webServer60,computername=xxx.xxx.xxx.xxx -dest:webServer,computername=xxx.xxx.xxx.xxx and get below error:
Error: (9/30/2015 3:29:24 PM) An error occurred when the request was processed on the remote computer.
Error: Source (webServer60) and destination (webServer) are not compatible for the given operation.
Error count: 1.
I use below command to forces Web Deploy to sync .Net 2.0 settings:
msdeploy.exe -verb:sync -source:webserver,machineconfig32.netfxversion=2,machineconfig64.netfxversion=2,rootwebconfig32.netfxversion=2,rootwebconfig64.netfxversion=2 -dest:webserver,machineconfig32.netfxversion=2,machineconfig64.netfxversion=2,rootwebconfig32.netfxversion=2,rootwebconfig64.netfxversion=2,computername=destServername
and get below error:
Error: (9/30/2015 3:19:11 PM) An error occurred when the request was processed o
n the remote computer.
Error: Exception has been thrown by the target of an invocation. ---> System.Exc
eption: Provider 'machineConfig32' does not support setting 'NetFxVersion'.
at Microsoft.Web.Deployment.DeploymentProviderSettingCollection.get_Item(Stri
ng name)
at Microsoft.Web.Deployment.DeploymentBaseOptions.AddDefaultProviderSetting(S
tring providerName, String settingName, Object settingValue)
at Microsoft.Web.Deployment.DeploymentBaseOptions..ctor(SerializationInfo inf
o, StreamingContext context)
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle._SerializationInvoke(Object target, SignatureSt
ruct& declaringTypeSig, SerializationInfo info, StreamingContext context)
at System.Reflection.RuntimeConstructorInfo.SerializationInvoke(Object target
, SerializationInfo info, StreamingContext context)
at System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Obj
ect obj, SerializationInfo info, StreamingContext context)
at System.Runtime.Serialization.ObjectManager.FixupSpecialObject(ObjectHolder
holder)
at System.Runtime.Serialization.ObjectManager.DoFixups()
at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(He
aderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAp
pDomain, IMethodCallMessage methodCallMessage)
at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize
(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCr
ossAppDomain, IMethodCallMessage methodCallMessage)
at Microsoft.Web.Deployment.Base64EncodingHelper.DeserializeHelper(BinaryForm
atter formatter, Byte[] buffer)
at Microsoft.Web.Deployment.Base64EncodingHelper.Deserialize(String str, Exce
ption& handledException)
at Microsoft.Web.Deployment.SerializationHelper.Deserialize(String str)
at Microsoft.Web.Deployment.DeploymentAgentWorkerRequest.GetTraceMessage(Stri
ng[] additionalMessage)
at Microsoft.Web.Deployment.DeploymentAgent.HandleSync(DeploymentAgentWorkerR
equest workerRequest)
at Microsoft.Web.Deployment.DeploymentAgent.HandleRequestWorker(DeploymentAge
ntAsyncData asyncData)
at Microsoft.Web.Deployment.DeploymentAgent.HandleRequest(DeploymentAgentAsyn
cData asyncData)
at Microsoft.Web.Deployment.DeploymentAgent.BeginProcessRequest(DeploymentAge
ntWorkerRequest workerRequest, AsyncCallback callback, Object extraData)
Error: Provider 'machineConfig32' does not support setting 'NetFxVersion'.
at Microsoft.Web.Deployment.DeploymentProviderSettingCollection.get_Item(Stri
ng name)
at Microsoft.Web.Deployment.DeploymentBaseOptions.AddDefaultProviderSetting(S
tring providerName, String settingName, Object settingValue)
at Microsoft.Web.Deployment.DeploymentBaseOptions..ctor(SerializationInfo inf
o, StreamingContext context)
Error count: 1.
Can anyone help me on this?
Capture groups broken in msdeploy 3.60
Hi there!
Since v3.60 msdeploy does not replace and/or capture groups correctly.
Given a source file "myfile.php":
$myvar = array( 'prop' => 'oldValue', ... );
Using the msdeploy command line:
set value=newValue
msdeploy.exe ^
-verb:sync ^
-source:package="..." ^
-dest:auto ^
-setParam:kind=TextFile,scope=\\mydir\\myfile\.php$,match="('prop'\W+=>\W+)'\S+'",value="$1'%value%'" ^
...
Expected result (working with msdeploy up to v3.50):
$myvar = array('prop' => 'newValue',
...
);
Result with msdeploy v3.60:
$myvar = array($1'newValue',
...
);
Instead of inserting the captured group's content
'prop' =>
it inserts $1
literally.
Has the regex syntax changed in v3.60? What can I do to mitigate the problem? Using v3.50 is not really an option since I'd like to use v3.60's new http proxy capability.
Thanks and best regards,
Thomas
MSBuild and Publish Profile
I've created a Publish Profile for a Web Application. I can successfully Publish manually (right click project, Publish, then select the Profile - Publish Method is "Web Deploy").
In the profile, I've entered a UserName (which has Admin rights on the IIS server) and Password (and checked save password) - it has created an encrypted password in the pubxml.user file.
I've created a Build Definition, and am using MSBuild arguments to do a "Deploy on Build" using my Publish Profile. If I include UserName and Password, the Build and Publish succeeds. I want to NOT hard-code the UserName and Password in the MSBuild arguments (I'm assuming I can somehow use/access what is set in the Publish Profile).
I've tried setting the Web Management Service to use/allow for NTLM (by adding the the Registry key for WindowsAuthenticationEnabled), but still no dice. Here are my MSBuild arguments:
This works (publish succeeds):
/p:DeployOnBuild=true;PublishProfile=DEVProfile;VisualStudioVersion=12.0;AllowUntrustedCertificate=true;AuthType=NTLM;UserName=<actual domain\userid>;Password=<actual password>
These do NOT work (publish fails with error below) - (I've read some posts saying include an empty UserName, I think to prevent MSDeploy from defaulting to Basic Authentication)
/p:DeployOnBuild=true;PublishProfile=DEVProfile;VisualStudioVersion=12.0;AllowUntrustedCertificate=true;AuthType=NTLM
/p:DeployOnBuild=true;PublishProfile=DEVProfile;VisualStudioVersion=12.0;AllowUntrustedCertificate=true;AuthType=NTLM;UserName=
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets (4255): Web deployment task failed. (Connected to the remote computer ("<actual server name>") using the Web Management Service, but could not authorize.
Here are the relevant DEVProfile.pubxml settings:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<AuthType>NTLM</AuthType>
<LastUsedBuildConfiguration>DEV</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<MSDeployServiceURL>actual iis host server</MSDeployServiceURL>
<DeployIisAppPath>actual iis site name</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>False</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<UserName>actual domain\userid</UserName>
<_SavePWD>True</_SavePWD>
I also tried storing the password in the pubxml file <Password>actual password</Password>, but this doesn't work either. (This would have at least removed the password from the MSBuild arguments). I know some values are being pulled from the pubxml (i.e. MSDeployServiceURL, DeployIisAppPath), but it seems UserName (and Password) are being ignored.
MSDeploy Restore Error
Hello,
I'm attempting to package multiple sites in II6 (Windows 2003) and restore them on another server with IIS8 (Windows 2012). Worked fine on one server, no issues, but for my last 2 web servers, I'm having multiple issues. For some reason it's trying to package the entire contents of the C:\ as well as all the necessary site files on D:\ (it should only be packaging files on D:\). To get around this I added the following to the command prompt: -skip:objectname=filepath,absolutePath="c:\\*". Here is the complete command:
D:\Microsoft Web Deploy V3>msdeploy.exe -verb:sync -source:metakey=lm/w3svc/1 -dest:archivedir=d:\sales.zip -skip:objectname=filepath,absolutePath="c:\\*", -skip:objectname=filepath,absolutePath="catalog.wci\\*" >> d:\sales.log
The above works and it complete successfully, I can also see in the log that it skips all files on C:\. But when I go to restore this package on the other server I get stuck with this error:
C:\Program Files\IIS\Microsoft Web Deploy V3>msdeploy.exe -verb:sync -source:arc hivedir=d:\andre\webdeployfiles\sales.zip -dest:metakey=lm/w3svc/5732 >> c:\sales.log
Error: An error was encountered when processing operation 'Delete Directory' on 'C:\$Recycle.Bin\S-1-5-21-854245398-1202660629-839522115-1355754\$RQJ6D0E\AppDat a\Local'. Error: The error code was 0x80070091. Error: The directory is not empty.
Error count: 1.
And in the logs it shows this:
Info: Adding child metaKey (/lm/w3svc/5732/Root/glmw).
Info: Adding child metaKey (/lm/w3svc/5732/Root/glmw/Path).
Info: Updating directory (C:\).
Info: Deleting directory (C:\$Recycle.Bin\S-1-5-21-854245398-1202660629-839522115-1355754\$RQJ6D0E\AppData\Local).
Why is it doing anything with C:\ when it skipped all those files during the package phase? Any ideas would be greatly appreciated!
Thanks,
Andre
Need advice for moving website from server 2003(iis 6.0) to server 2008(iis 7.0 i believe)
Current setup: 2 DC's
server 1 = server 2008(main dc;gc)
server 2 = server 2003(iis version 6.0);currently holds website
Long story short over the weekend I need to demote server 2, strip it of all its services to make room for the new server(server 2008) that will be replacing it.
I have never migrated a website before, let alone to a newer version of iis. I fear that even if I successfully move the website to the new server, my clients will not be able to get their reports(use the asp files).
Any tips,precautions, steps would greatly be appreciated.