Single Application Code deployment for multiple web sites - iis-7

At present we're hosting an application called RenderServer which is deploy on server for individual client. It has its own web.config file for all the settings, and the application code for a specific user.
In case of Shared hosting where multiple RenderServer would be running on same machine for different clients, we have to deploy all the Code files individually for everyone which is a bit hassle in terms of deployment.
So Ideally we are looking to have Single Application Code deployment (I mean single virtual directly folder) for all web sites to share the same code.
Please give your suggestions whether it's possible or not and if possible then what are possible ways.

Related

Deploy ASP.net APP to azure web app without source code

I've a dedicated machine with at least 6 diferent asp.net 4.5 applications where the developer deployed compiled versions. This apps are all working fine now, but I haven't access to source code.
Now I want to deploy this apps to Azure, but not to a VM, to an Azure Web App Service. Is it posible?
Thanks in advance!!!
Quite possibly. We can't say for sure without more information.
You'll need to FTP all files from your existing root directory/directories to your new Web App. If it's a vanilla ASP.NET web app and there aren't any dependent issues (such as databases on other servers that you cannot move or poke holes through firewalls), it should work.
There are many considerations. For instance, if the applications have dependencies on specific drive letters, you won't be able to mount those drives.
This is just one example, you can take a look at the restrictions that are imposed on Web Apps: https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox
The best way to know, is to create a new site, deploy the files, and see what breaks.

Wrong assemblies on multiple instances of webapp in Azure

Let's say I have a website on the azure webapps which is always scaled at 10 instances.
And then I do some code changes on the website and re-deploy to the webapp which still is scaled up to 10 instances. Would it be possible that something might go wrong and that not all the instances assemblies would get updated? is this an issue that could happen?
Haven't found much about it when googling but perhaps anyone here would know more about this scenario.
BR
Joe
Your application files are placed in a network share and not copied to many servers. The share is then mapped to the machine(s) running IIS as d:\home. The folder contains your app files, logs from iis, etc. When you deploy your file, they are placed in the common UNC share. So all the instances see the same files.
More details here: https://azure.microsoft.com/en-in/documentation/articles/web-sites-available-operating-system-functionality/

Deploy multiple configs or put everything in a single web config?

Our solution file contains many different projects including an ASP.NET MVC web app, a windows service, and several desktop applications. One project handles logging and has an app.config file containing a list of recipients to inform when something fatal has been logged.
Concerning the deployment of our webapp, I was wondering if it would be better to create a section in the web.config containing this information so that I wouldn't have to deploy the logger's app.config, or is it better to do deploy separately, since other applications use the logger and it should depend on its own file to tell it who to inform?
Typically it's best to push the responsibility of infrastructure configuration up to the consuming client application (whether that be configuration through code, Web.config, app.config, etc.). That is to say, if the library is expecting certain sections to exist in the default config file, make providing this the responsibility of the client's config.
Do what makes the most sense to you and your team.
I've seen this done a dozen ways and it never changed how successful the application was and no customer/stakeholder/enduser ever cared.

Multiple Virtual Directories pointed to the same folder on web server

I have a presentation web farm with four load-balanced servers. I have one web application with two website domains that represent that application. Rather than constantly push to two different folder locations, I figured I can push to one location and have a virtual directory on each website point to the single folder on the webserver.
Here is the setup:
The load balancer is CoyotePoint. The web framework is asp.net 3.5. IIS 6 (slowing moving to 7).
I'm concerned about performance in a production environment. Are there any ramifications to having two websites with virtual directories pointing to the same directory on disk? Should I also be worried about application pools?
I think I found what I was looking for. It's called CentralizedWebFarmManagement for IIS. Specifically, I think the Shared-configuration, and Web Deployment Tools for Web Farm is exactly what I need!
It depends on what this application is doing. If you're doing anything at all fancy with System.IO you're going to run into issues.
There are other ways to make the pushing of files easier. I highly recommend creating a quick bat file with a few robocopy commands in it.

Synchronizing External Configuration Between IIS Servers in a Web Farm

I have been struggling with the best way to make sure that the certain XML configuration files stay synchronized between multiple servers in a Web Farm. I am not necessarily concerned about the Web.Config, as much as I am concerned about some of the other configuration files that are present in the application.
For example, we store caching policies in an external XML file, where it has its own schema, and will soon have its own tool to maintain the values. Once the changes are applied, they should be migrated across the farm.
Some scenarios that I have considered so far:
RoboCopy, replication, or equivalent. This requires that work only ever be done on a particular node of the farm. (Push to application.)
Configuration Server. All external configurations and their tools are stored on a physical instance of IIS. The application will retrieve these configuration files on application start and periodically poll for changes. (Application polls.)
Team Build. We could host the tools in-house and set up a post-build process to deploy the files. (Application polls.)
Database Storage. Applications could read and poll database for configuration. (Application polls.)
All of these scenarios have their pros and cons. I am not sure what the best solution is, although I think having the application poll for changes might be the cleanest approach. Still, the question is which way would you best consider this to be accomplished?
I have web cluster running Windows Server 2008. To keep everything synchronized I'm using a DFS share that is on each of the members. Any changes made to any of the members are replicated to the others. I'm also using the IIS "Shared Configuration" feature to store my metabase within this DFS share. That way all of the IIS settings are replicated as well.
On a project that I worked on, we used a product called ServerSync to replicate files on the farm. It works pretty good and it is -fast-.

Resources