I am thinking of getting a $20/month VPS Ubuntu box with Slicehost.com or linode.com and running asp.net MVC on mono. Has anyone done this? I have successfully configured asp.net MVC with Apache on my local ubuntu box but I just am not sure how stable this would be? I really like the idea of root access VPS plus being able to run asp.net mvc for $20/mo would be sweet
Jackson Harper runs his site on a similar system running on Linode.
You might want to check his blog, slides and his pre-configured appliance that runs ASP.NET MVC here:
http://blog.monoontheweb.info/
Miguel is right I did run that setup for quite some time. Unfortunately that blog is down now because I am using that node for testing another project. You might be interested in this project as it as meant to make deployment of the very setup you are talking about much easier.
More info on the project here: http://jacksonito.blogspot.com/2010/01/setting-up-mono-powered-aspnet-web.html
As per my results running my Mono web server on Linode. I have had used that setup for two different sites and had excellent uptime and performance on both of them. None of them were extremely popular sites but they got a couple large spikes in traffic.
Related
I work for a company that has a multi tier web site. So we have several front end sites talking to several back end web services. All this is load balanced across several servers and hosted in IIS 6.0.
When we do a new release we need to copy several sites from a staging environment onto a pre live version on the live web servers. The number and types of sites deployed in any release could vary. Currently use robocopy scripts/bat files to do this. Which works but is prone to errors and is difficult to maintain.
Does anyone have any experience of some good, preferably open source, deployment software which may aid us in this task?
I would use PowerShell and its WebAdministration module. Also have a look at Scott Hanselman's article here, where he explains the WebDeploy packaging and deployment solution (on Channel9 also).
We use a continuous integration server and Web Deploy. The only manual steps are triggering the build in the CI server.
We use TeamCity, which has a limited free version. CruiseControl.NET is an open source CI server, but the configuration isn't nearly as nice as TeamCity.
Here are a few articles on setting up TeamCity for deployment:
http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn
http://www.troyhunt.com/2010/11/you-deploying-it-wrong-teamcity_26.html
I know its possible to develop and host an ASP.Net site on Linux using Mono and Apache, but I'd like to know how well it works and if its worth the hassle? I prefer open source, but for this project I want the quickest, easiest, most reliable solution.
The site I'll be building will be a fairly basic ASP.Net site using MySQL.
I'd like to know if anyone else has experience using Mono in a situation like mine and how the project went. How did it compare to using a Microsoft-centric solution?
I know Mono is still somewhat incomplete, but I'm hoping I won't need the features it lacks.
This question may be a bit "polarizing". Most similar questions seem to have responses from people who are either very pro-Microsoft or pro-Linux. I'm hoping for some unbiased responses, preferably from people with experience using both.
I switched from MS-centric solutions about a year and a half ago and now I'm hosting all of my websites and web projects on Linux/Mono/Apache/MySQL based virtual servers (I was originally using nginx instead of apache, but mono-fastcgi-server was randomly causing thrashing, so I choose apache as a web server). I can summarize my (subjective) experience with this configuration into a few points:
It can take some time to get used to difference between Linux and MS based environments (if you never used Linux before), but I do not regret this decision. What helped me a lot was creating installation and configuration procedures for particular technologies (for example mono parallel environments, apache virtual hosts configurations, dealing with certain issues) which are mostly repeatable and can be automated.
You can still use Visual Studio to develop your applications and then deploy them on Linux machine. If you are using this approach it's a good habit to test your apps regularly on mono for possible incompatibilities.
I deploy web applications via FTP which is probably the easiest way of doing it (well maybe WinSCP is even easier, because you don't have to set up FTP server, but it depends on your preferences).
So far I have run into 2 cases with Mono/Apache where memory leak caused unavailability of the website. This was probably caused by Boehm garbage collector which I was using on old mono installation. I haven't had similar problems with a new sgen GC on recent versions of mono.
What I like the most on mono running on Linux environment compared to MS stuff is that you don't have to click around all the time when doing administrative tasks. Shell is for me unified administrative interface which can speed up things (if you have some practice).
Hosting ASP.NET on mono from my experience is quite easy and fast. i has been host multiple of my project using Mono ASP.NET MVC 1 / 2 using MySQL and PostgreSQL, serve by Apache mod_mono.
Compared with deployment on Windows Server. It quite narrow when using modern linux distribution which already provides all package to deploy mono ASP.NET. the only drawback is you have to make sure your Web Application portable enough in term of IO accessing and only very short learning curve and experience needed to debug and publish your project.
For Deploying our project in Linux. It easy using Version Control (VS) such as Mercurial or Git if u have fully control on the server. If U have more experience using continues integration is more better. I mainly using mercurial so step bellow is the step i usually do, but i think it almost similar for Git:
Install mercurial, and configure mod_wsgi, hgweb.wsgi and hgwerb.config
Init VS repo and publish at hgweb.config and configure hook to update and invoke xbuild to automatically build when u push it
publish the repo (web part) as mono application at mod_mono.conf
So u just need to code at visual studio, commit and push your changes using tortoiseHg without event login to server (set repo url, user and password at your repo hgrc)
Please note that although you can deploy ASP on Linux via things like Mono, if you use a Microsoft ide such as Visual studio, webmatrix, or Visual web developer your licence only allows you to deploy these on Microsoft servers!
We have an ASP.NET application running on a webfarm. When we release a new version and copy it to the production servers, occasionally it happens that after a few hours the application reverts to a an earlier code base.
Have anyone else experienced something like this? Would sharing an application pool between two applications running different versions of the code make this happen?
Additional information:
3 x web servers running w2k3/iis6
ASP.NET 3.5
I've had this happen rarely on non-precompiled sites and the solution was to stop IIS and clear out the temporary cache at:
%WINDIR%\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
Is not a long-term solution, but will address the immediate problem. If not already, it is worth considering deploying the site pre-compiled.
Just getting started on a project to migrate from win 2003 iis6 to win 2008 / IIS7, and after reading the MS documentation and also various articles I am a little confused, as it states a site needs to have one or more applications.
However I have setup a new site pointed at my .Net 3.5 directory and it works.
This means that ....
A- I am seeing things.
B- A site does not actually need one or more applications.
Can anyone explain the above behaviour? and or point me to any useful articles that explain site, applications etc... to me.
The app pool is in classic pipeline mode, not sure if this is a problem.
Many thanks,
Your guess in a comment is correct - a web site itself also acts as an application and does not require an explicit application subfolder.
Here's some links that helped me with understanding IIS 7.0
Configuration reference
Operation Guide
I'm working on a fairly new project and we started from scratch. So not only the web application itself needs to get developed, but also the whole process of publishing the site and configuring the web server etc. need to be done from scratch.
This question might be more apropriate for serverfault, but that really depends on the answers. So, let's give it a try.
Wehn ever I publish our site via VS2008 (right click on the web site, publish web site, wait... done) I need to somehow tweak the process and trigger some other tasks, like:
- Copy some folders from my dav machine to the web server
- Delete the test database and let some scripts run on it
- and maybe some more I'm not remebering right now.
I was reading about the most obvious solutions like MSBuild, Powershell and VSTS2008, but I don't really want to dive deep into them until really I know, that theses tools can actually solve my problems. So guys, I'm pretty sure a lot of you have got a lot of knowledge about these tools or know even better ones. Please let me know. I really appreciate.
Thats my environment I'm living in:
- VS 2008
- VSTS 2008
- SQL Server 2008
- Windows Server 2008
UPDATE: Thanks for the great answers so far, but I'm especially looking for a solution integrated into Visual Studio Team Foundation Server as we're already using it for Source Control.
Cheers,
Steve
We deploy our web application with Subversion, and are very happy with it.
The build server compiles the application, copies it to a deploy directory and checks in changes to a Subversion repository. Okay, I admit that this is not trivial, but it's worth to invest here... because on the server(s) the deployment is now extremely easy. Advantages are:
Only the necessary files are copied to the server, the downtime is minimal (using svn update)
It's a piece of cake to verify what version is deployed to the server, and it's easy to have a consistent version across multiple web servers
If you screwed up, it's just 2 clicks to revert back to the previous version
It's takes care of deleting files when you deploy a new version. Copying a web application over an older version can leave potentially dangerous files
Modifications in the web.config are not overwritten by the deployment, they are merged. That's really a big plus
You can set pre and post build events, and can have one the events fire a script to complete your tasks.
You might look to see if the IIS Web Deployment Tool fits your scenario; it allows you to publish your website, configuration settings, database, etc... all together. This will also be integrated into Visual Studio 2010.