Using MSDeploy to copy/clone website in IIS 7 - iis

I am trying to clone a website in IIS (testing on IIS 7.x on Win8 but to be run on Server 2008) to essentially create a complete copy of the app and the definition of a website and all child applications. I don't want to copy the contents.
For instance, if my original website is listed as ID 2 with name "dev.mydomain.com", I want to create a new website with ID 3 (for example) with name of "stage.mydomain.com".
The Physical Path points to "c:\dev.mydomain.com", which has to be changed to "c:\stage.mydomain.com". There are nested apps within this site that will also just need their Physical Path changing. I'm ok going into the xml file and just doing a manual search/replace, in fact, that would probably make it easier.
So my attempt was:
To export:
msdeploy -verb:sync -source:metakey=lm/w3svc/2 -dest:archiveDir=somefolder -skip:objectName=filePath,absolutePath=.*
To import:
msdeploy -verb:sync -source:archiveDir=somefolder -dest:metakey=lm/w3svc/3
I can go into the xml files in the folder and rename the paths, but when I run the import I get errors about the "path" /metakey is encrypted. I've tried other combinations but get different errors.
Is there an easier way to do this or can anyone give me the correct command?
Thanks.

Related

Office Add-in Internet Explorer cannot find path

I am getting started with Office Add-ins through the Java script API. I am going through this tutorial. When I proceed with the Try It Out section. I get this error. I am getting the add-in to run fine when I give the absolute path in the source location node of the manifest for example E:\Excel-Add-in-Javascript\first-excel-addin\Home.html but its the relative path that is not working for example \\SAAD\Excel-Add-in-Javascript\first-excel-addin\Home.html Kindly let me know if you a solution.
The source location node should not contain a relative path. It should use a complete path, either on the internet or on a network share.
In your case, you need to make \\SAAD a network share, not just a folder.
I don't think that serving from the file path (file:///C:/Users/username/Desktop/something.html) or share is a supported scenario. It may work, but note that it will run differently (and sometimes not run, or be overly permissive) than when you deploy the app for real.
To be clear, you can have a manifest file on a network share for ease of testing the add-in -- and in fact, it's the easiest way to get your add-in registered with Office desktop. But the web content should be served off of a web server (anything from hosting via an IIS local-host web server, to using an Azure Website, to putting your content on github and serving it via https://rawgit.com/).

Using IIs as it I would use Apache

I want to use IIS the way I use Apache. With that, I mean to, for example, create a simple html file, with only a "hello" message, put this file inside the IIS folder and then be able to access this html page thru eg.: localhost/mypage.html.
I can't figure it out how to make this. I've searched on Google, but nine has helped me.
My doubts are:
The IIS server is turned on, I saw this on the IIS Manager. So, what are the folder that I should place my html file and what are the default port that IIS uses so I can access my html file via localhost?
Create a new website and point to the folder where your html file resides
GO to IIS Manager->Right Click on Sites -> Add Website
Are you getting the localhost default screen
Restart Your server as whole,
See if the IIS Worker Process is running on the task manager,

Web Deploy Set Parameter using external file

We have an Website project that's hosted in Azure, and we use Web.config transforms for setting environment variables. However, our current approach for building the system for different environments is to build the project multiple times (currently this is 3), which is inefficient.
We'd like to move to using Web Deploy, as this would then set us up nicely for using Release Manager.
Our issue is around using Web Deploy parameters instead of web.config transforms; we need to substitute multiple xml elements, rather than single values.
After much research, I found these 2 articles which detail almost exactly what I'm trying to do
http://blogs.iis.net/elliotth/web-deploy-xml-file-parameterization
http://www.iis.net/learn/publish/using-web-deploy/parameterization-improvements-in-web-deploy-v3
Essentially I'm trying to replicate Scenario 5, but using a separate Set Parameter file for the value.
Unfortunately, in the examples, referencing an external xml file only works if it is on the target machine. Some testing with a colleague confirmed this; works on local machine, but not on Azure.
Is there a way I can force Web Deploy to look in a particular location for the external configuration files?
As you've already noticed, Web Deploy is only able to read replacement values on the local machine or on a UNC share. It can't read that specific file over HTTP.
If you're deploying to an Azure Web App, then one thing you could try would be to use Kudu/FTP to manually upload that file one level above your wwwroot folder. Then you could specify the file location like so:
D:\home\site\prices.xml:://book[#name='book1']/price
Of course this implies that you'd have to pre-upload this file before publishing to your site, so it's not a perfect solution, but it should work for what you're trying to accomplish.

Web Deploy create Virtual directory and add application

I need to deploy web applications to an IIS 7.5. I have tried to create a web deploy package but I run into a problem.
Most of the applications I need to deploy are nested under virtual directories. Example:
Web Site/vDir/vDir/application
This seems to work if the virtual directories are already created. But if they are missing the application are instead created directly under the Website.
I create the package with the parameters /t:build;Package
Atm. I am using the cmd file to deploy with parameters /Y /m:[Servername]
I can't find a way to change the dest parameter. Do I need to use msdeploy directly instead?
I saw a very similar question containing a good answer by AaronS.
He basically suggests creating a custom build task, including an example code.

How to setup IIS 7 using physical path directing to DropBox?

I'm using multiple computers for development and I want to be able to store my files in my dropbox folder. I went to change the physical path in IIS from c:\inetpup\wwwroot to the dropbox folder but I get this error:
The requested page cannot be accessed
because the related configuration data
for the page is invalid.
I couldn't find the config file so I was wondering if anyone had done this before or whether there a better way to sync everything nicely across several PCs?
I tried it (IIS 7.5, Win 7) and it should work just fine to let your physical path of your web look at your dropfox folder. I would guess your web.config file generally contains malformed XML (see KB942055).
I'd suggest, try to map it to an empty folder just with an index.html file and see if this error still occurs.
As a workaround, I guess you can put Dropbox in your wwwroot folder and set up a virtual directory that points to Dropbox. However, there are some security issues that may hinder you from doing so. I come across a nice tutorial on how to set up Dropbox to IIS as FTP Publishing. Hope it helps.
Hodgin's guide on using Dropbox as FTP publishing.

Resources