I'm working with a series of sites that all share the same back and middle tiers. The front-end has site-specific headers/footers, store email addresses and a few other app-specific settings.
I've never been exposed to the ways larger dev shops and automated deployments so the more common and obvious approaches will be right on over my head.
I'm trying to setup a scenario where, upon deployment, the new assemblies are propagated across each of the cookie cuttered sites with enough logic that each site applies the relevant settings.
Is this just a matter of laying out a series of MSBuild or PowerShell commands that iterate thru all settings for each site? Or perhaps databased values mapped to site-specific settings that are applied by code in the AppStart event?
thx
If you use Web Deploy, you can create a package with parameters for certain components that will change at deploy time, and then specify values for those parameters when you deploy. The following resources have more information:
Customizing a Deployment Package
Web Deploy Parameterization in Action
Web Deploy: Replace Rule vs. Parameterization
Packaging and Deploying Web Applications for the Visual Studio Development Web Server
Team Build + Web Deployment + Web Deploy + VS 2010 = Goodness
Related
We've moving a legacy application from 2003 to 2012R2.
As part of this we're using a legacy deployment script which deploys the site code, including its web.config file.
In prepping the servers I wrote powershell scripts to set up as much as possible of the previous manual config. This included new-webhandler calls to add web handlers.
These are over written by the deploy.
What is the best practise for managing the conflict between occasional deployments and ongoing support?
I'm using Kentico 9 with MVC. When I add a image to the media library it is not copied to the MVC application. I am using the default media library location which resolves to ~/site/media but the image is only accessible from the admin domain. admin.site.com/site/media/image.jpg and not from site.com/site/media/image.jpg.
For the image to be accessible, I have to manually copy the images to the corresponding folder.
My admin and MVC site are hosted on the same server using two different IIS app pools. However, we plan to separate these in the near future, so its important that this synchronization works correctly.
Under Web Farms, I have only one active server.
Both web.config files have the same CMSHashStringSalt values.
based on the Documentation:
By default, content of media libraries is synchronized via web farms and duplicated between Kentico and your MVC application.
EDIT:
What is the best practice for configuring media libraries with MVC?
The fix was simply adding <add key="CMSWebFarmServerName" value="MVCApplication"/> to the MVC application
SOURCE:TLDR
If you plan to run the Kentico and MVC applications on the same domain (for example, distinguished by port numbers and run in different virtual folders), you need to manually assign unique server names to the web farm servers. To set a web farm server name, see Step 5 in Configuring web farms manually.
Since these sites are hosted on the same machine, i needed to specify a unique server name.
My understanding of the MVC setup is that you should either have two servers setup manually in your web farm or have the web farm set to auto. As you only have one, there is nothing to synchronize. That you only have one server in your server list makes me think that the synchronization is not going to work. If your web farm is set to auto, perhaps try to configure it manually.
Do you have the Admin and MVC running as two site under IIS pointing to the same database? Also, do you have the license key with 2 servers modifier? (you will need to request that from your sales rep)
I have basically two URL's http://xyzwebsite.com (for Development Testing) and http://abcwebsite.com (For Production). I have a simple Login mechanism where a user can click on Google Plus icon to log in rather than using their Username and Password. I created one Project for Development with obviously different Client ID and different for Production with a separate client ID.
But I tested both the URL's above with the client ID of Development project and it worked fine. I am wondering why there is a need ot having multiple projects in Google API console?
There is no particular need. A single project can have several URLs and client IDs for use.
Some reasons you might use multiple projects include:
Changing project settings in dev without worrying about breaking production
If you have a development script that gets into an endless loop or something it might use up all of the quota and the production app might start throwing errors
You might want clear branding on the dev app that explicitly identifies as not production.
Some unknown reason I can't think of.
Environment : Development
Technologies Used : ASp.Net MVC 3, ASp.Net Web Forms, IIS Express, VS 2010 SP1.
Scenario :
We have implemented separate website module as actual separate .Net solutions. eg.
For User Account related features, site runs at localhost:7080/.
For search, site runs at localhost:7020/
And a project holding common UI element runs at localhost:7090.
While our main site using all these separate modules runs at localhost:8000. This is the only application which is in ASp.Net webforms (it's legacy code.)
This setting allow us to deploy only required module(s) in production.
In production, these sites has urls like,
www.example.com/account
www.example.com/search
www.example.com/common
Each of these project is actually a separate website in IIS and a redirect engine redirects the URL to appropriate website.
Problem :
All is good and fine in production, the challenge is only in development environment. We cannot use full IIS due to restrictions from system admin teams (humph) and have to use IIS Express.
What we want is to achieve this,
[http://]localhost:8000/useraccount redirects to [http://]localhost:7020
[http://]localhost:8000/search redirects to [http://]localhost:7080
etc. In short we want to mimic our production environment.
So is there any suggestion about what kind of URL redirection I can use to achieve this ? I did a fair bit of research but couldn't figure out a solution.
Why can't you do it exactly the same as production? IIS Express supports the url rewrite module which I assume is how you do it with the full version of IIS. Install webmatrix which includes the rewrite module by default and you can use the webmatrix gui to configure IIS express and your rewrite conditions.
What is the best way to deploy an MVC3 application to a client site? Now I can create a deployment package using web deploy and possibly give them a script to deploy the files on their IIS servers. But is there any other way? I just want to give them a one-click option after they download the application, if that makes sense.
Also, is there a good way to obfuscate MVC3 application as a whole?
You will need a script to deploy your MVC application files, as well as the MVC required DLLs to the web server. In your script you can have it so that it creates the application in IIS to the appropriate application code.
As for a "One Click" type deployment, you'll have to have some knowledge of how their IIS is setup and what they are willing to do with virtual directories.