Don’t run production ASP.NET Applications with debug=true
by Alesandro Slepčević on Nov.29, 2009, under Servers, Windows and Powershell
Found an awesome post on DotNetPanel blog so I had to repost it
One of the things you want to avoid when deploying an ASP.NET application into production is to accidentally (or deliberately) leave the <compilation debug=”true”/> switch on within the application’s web.config file.
Doing so causes a number of non-optimal things to happen including:
1) The compilation of ASP.NET pages takes longer (since some batch optimizations are disabled)
2) Code can execute slower (since some additional debug paths are enabled)
3) Much more memory is used within the application at runtime
4) Scripts and images downloaded from the WebResources.axd handler are not cached
This last point is particularly important, since it means that all client-javascript libraries and static images that are deployed via WebResources.axd will be continually downloaded by clients on each page view request and not cached locally within the browser. This can slow down the user experience quite a bit for things like Atlas, controls like TreeView/Menu/Validators, and any other third-party control or custom code that deploys client resources. Note that the reason why these resources are not cached when debug is set to true is so that developers don’t have to continually flush their browser cache and restart it every-time they make a change to a resource handler (our assumption is that when you have debug=true set you are in active development on your site).
When <compilation debug=”false”/> is set, the WebResource.axd handler will automatically set a long cache policy on resources retrieved via it – so that the resource is only downloaded once to the client and cached there forever (it will also be cached on any intermediate proxy servers). If you have Atlas installed for your application, it will also automatically compress the content from the WebResources.axd handler for you when <compilation debug=”false”/> is set – reducing the size of any client-script javascript library or static resource for you (and not requiring you to write any custom code or configure anything within IIS to get it).
What about binaries compiled with debug symbols?
One scenario that several people find very useful is to compile/pre-compile an application or associated class libraries with debug symbols so that more detailed stack trace and line error messages can be retrieved from it when errors occur.
The good news is that you can do this without having the have the <compilation debug=”true”/> switch enabled in production. Specifically, you can use either a web deployment project or a web application project to pre-compile the code for your site with debug symbols, and then change the <compilation debug=”true”/> switch to false right before you deploy the application on the server.
The debug symbols and metadata in the compiled assemblies will increase the memory footprint of the application, but this can sometimes be an ok trade-off for more detailed error messages.
The <deployment retail=”true”/> Switch in Maching.config
If you are a server administrator and want to ensure that no one accidentally deploys an ASP.NET application in production with the <compilation debug=”true”/> switch enabled within the application’s web.config file, one trick you can use with ASP.NET V2.0 is to take advantage of the <deployment> section within your machine.config file.
Specifically, by setting this within your machine.config file:
<configuration>
<system.web>
<deployment retail=”true”/>
</system.web>
</configuration>
You will disable the <compilation debug=”true”/> switch, disable the ability to output trace output in a page, and turn off the ability to show detailed error messages remotely. Note that these last two items are security best practices you really want to follow (otherwise hackers can learn a lot more about the internals of your application than you should show them).
Setting this switch to true is probably a best practice that any company with formal production servers should follow to ensure that an application always runs with the best possible performance and no security information leakages. There isn’t a ton of documentation on this switch – but you can learn a little more about it here.
So, dear developers, keep on eye on debug state…it will make you and the server happier
ALL CREDITS OF THIS TEXT GO TO DOTNETPANEL BLOG!
Source : DotNetPanel Blog
Automating backup of databases in SQL Express.
by Alesandro Slepčević on Nov.22, 2009, under Servers, Windows and Powershell
Microsoft SQL Server 2005/2008 Express is a free edition of SQL Server that is ideal for learning, developing and powering desktop, web and small server applications, and for redistribution by ISVs.
Top Features
- Supports stored procedures, triggers, functions, and views
- Store all kinds of business data with native support for relational data, XML, FILESTREAM and spatial data
- Improved performance, usability, visualization, in addition to integration with the Microsoft 2007 Office System in SQL Server Reporting Services
- Simplify development efforts by leveraging existing T-SQL skills, ADO.NET Entity Framework and LINQ
- Closely integrated with Visual Studio and Visual Web Developer
Because there’s no “SQL Agent” in SQL Express Editions, in order to create scheduled backups on SQL server Express edition, we need to user couple of tricks
Setuping a server for web hosting – part 3: Installing MySQL
by Alesandro Slepčević on Nov.01, 2009, under Servers, Windows and Powershell
Back by popular demand
part 3 of the “setup my web server” tutorials
In this post we will cover the instalation of MySQL on a Windows 2008 R2 based server. The process is the same if you would have a Windows 2003 machine also.
At the beginning, lets see what MySQL is.
MySQL is a relational database management system (RDBMS). MySQL stands for “My Structured Query Language“. The program runs as a server providing multi-user access to a number of databases.
The project has made its source code available under the terms of the GNU General Public License, as well as under a variety of proprietary agreements. MySQL is owned and sponsored by a single for-profit firm, the Swedish company MySQL AB, now a subsidiary of Sun Microsystems. As of 2009[update] Oracle Corporation began the process of acquiring Sun Microsystems; Oracle holds the copyright to most of the MySQL codebase.
MySQL is often used in free software projects which require a full-featured database management system, such as WordPress, phpBB and other software built on the LAMP software stack. It is also used in very high-scale World Wide Web products including Wikipedia, Google and Facebook.
Many web applications use MySQL as the database component of a LAMP software stack. Its popularity for use with web applications is closely tied to the popularity of PHP, which is often combined with MySQL.
So, what is the process of installing MySQL on a Windows machine? Well, it’s pretty straight forward so there is no need to write step-by-step tuturial..look at the video rather than reading
Dont forget to choose HD and the “full screen” option.
Song in the video is from Thievery Corporation. Song name is : Lebanese Blonde
The website is down, Episode 4 :)
by Alesandro Slepčević on Oct.27, 2009, under News, Servers
This episode requires a special blog post for it
hehe..awesome!
Migrating Windows XP to Windows 7
by Alesandro Slepčević on Oct.24, 2009, under Windows and Powershell
Hi again, found an video that could be very interesting….its about how to migrate Windows XP to Windows7 ….
Click on the picture and enjoy!
Note: open the link in Internet Explorer…there’s no sound in Firefox
Setuping a server for web hosting – part 2: Installing SQL 2008 Express
by Alesandro Slepčević on Oct.24, 2009, under Windows and Powershell
Hello there…
In order to install SQL 2008 Express, we have to download it first . Fire up your favorite browser and point it to http://www.microsoft.com/express/download/ . After that, find the box with the SQL 2008 Express, and click download.
On the next step you have the option to register with Microsoft or download the software without registration. I will choose the “no registration part”.
In the new window, choose the version you would like to install. Personally, I will choose “Runtime with advanced services“. By clicking on install, Microsoft will ask to install the Microsoft Web Platform installer. If you dont have it installed, click on the picture to install it.
Choose “Run”, and after the download, again, choose “Run“. Wait for the installtion to finish and look at the top of the browser, a little bar will pop up and ask us if we want to run Active X control. Make sure the publisher is “Microsoft Corporation”. Click on “Run“, and then on Allow.
Now, look at the video of the installation I have made for you. The video will show you the process of installing SQL Server 2008 Express.
After that, all you need to do is run the “SQL Server Configuration Manager” under “Configuration Tools” and configure it the way you want it.
BTW, the track used is La Noche by Coca & Villa .IT’s AWESOME!!!
Have fun…bye!
HyperV+ISCSI+Windows 2008 – yes..it works like a charm :)
by Alesandro Slepčević on Oct.21, 2009, under News, Servers, Windows and Powershell
Today, me and my collegaue managed to configure ISCSI on some backup server we had at the office. Iscsi target is based on OpenSolaris and ZFS . ZFS is a combined file system and logical volume manager designed by Sun Microsystems. The features of ZFS include support for high storage capacities, integration of the concepts of filesystem and volume management, snapshots and copy-on-write clones, continuous integrity checking and automatic repair, RAID-Z and native NFSv4 ACLs. ZFS is implemented as open-source software, licensed under the Common Development and Distribution License (CDDL). The ZFS name is a trade mark of Sun.
Requirements for running any OS in HyperV that will be stored on Iscsi server are:
1. Iscsi target, obviously
2.Iscsi initiator software ( bundled in Windows 2008 Server)
3. High speed network, atleast 1Gbit.
4. Drive that you connect to the HyperV machine MUST stay in offline mode.
5. Tons of time to configure it
Will you will be able to read more details about configuring OpenSolaris and ZFS on my collegaues blog : toic.org – linux geek blog
So, like we already know, the disk on that we want to install the OS has to be offline ( hint: disk2 ).
Next step is the creation of the virtual machine that will use the disk. I have recorded that process, so you can see how simple it is
.
All that you have to do is to install the OS…I didnt do that to the end in the video.
Tommorow we have planned to create a failover cluster with two Windows 2008 servers and see what will happen when one server suddenly get disconnected..ups
Bye, Alesandro
Powershell cheat sheet :)
by Alesandro Slepčević on Oct.20, 2009, under Windows and Powershell
Surfing all over the net, I found a very handy powershell cheat sheet that was put together by Ben Pearce. Anyways, here’s the download link (just click on the picture).
Big hello to the guys from www.bug.hr
Installing IIS on Windows server 2008 R2 Standard – video tutorial.
by Alesandro Slepčević on Oct.20, 2009, under Servers, Windows and Powershell
Hi, last couple of days I have setuped over 10 Windows 2008 servers for hosting services for testing or production, so I am pretty bored with repeating the same stuff all over again
, but, here’s a recorded video tutorial of one installation process. Because the video is pretty straightforward, I’ve decided that there is no need to explain every step of the installation.
Click on the HD button and put the video into full screen mode, so you can see all the details.
In the next post, I will show you how to install Microsoft SQL server 2008 Express .
Cheers!
How to setup a Windows 2008 Server for hosting usage?
by Alesandro Slepčević on Oct.17, 2009, under Windows and Powershell
No, I wont explain everything in this post. This post is just a annoucement, so you can know what will you read in a couple of next posts. We will cover the installation of IIS 7( Internet Information Services), MS SQL server, MYSQL server, PHP 5, Perl, Awstats and finally, integrating everything in DotNetPanel, the web hosting control panel for Windows Servers. I will not explain or show how to install the OS on the server, because its a rudimentary and boring stuff
, but being awesome, here’s a link to the video someone made
