*Updated* 14 July 2011: Explanation about the the "zsValidate page"
Its not easy to launch a website.
As per secretGeek you gotta know:
This is a quick check list for an ASP.NET site before going live. There are heaps of those on the web, but this one is customized to ASP.NET and my personal top 4.
#1 Check your web.config for security and performance issues
Submit your web.config to http://www.wcanalyzer.com/
Attention: Before submitting to wcanalyzer.com make sure to get rid of all clear text passwords and server/ database names
Use web transforms to get rid of all "Debug" configuration settings and security relevant bits
There is a nice little tool called the "Web.config Transformation Tester tool" to test whether your transforms work as expected.
Check it out if you struggle with web transformation here http://webconfigtransformationtester.apphb.com/
Some other quick things that you should check your web.config for
Not 100% sure but I hope this analyser covers those
- <compilation debug="false">
Increases performance and caching and less overhead
- <customErrors mode="on" or "remoteOnly"
- Disable or at least limit tracing info
<trace mostRecent="true" enabled="true" requestLimit="1000" pageOutput="false" localOnly="true"/>
Tracing works only in debug mode anyway… So this shouldn't be necessary
"Superhero Sys Admins" put all those in the machine config to enforce this machine wide
#2 Deploy "Release" build
Because you have setup Continuous Delivery as per http://blog.gfader.com/2010/12/do-you-automate-your-deployment-process.html
just check that you really deploy the "Release" version.
Change your Build configuration to "Release" will reduce your build time to half. Per default this is set to: "Any CPU|Debug, Any CPU|Release"
#3 Install elmah and have "no error emails" for 1 week
1. "nuget elmah" on your website project
2. Configure error email
<elmah> <errorMail from="firstname.lastname@example.org" to=" email@example.com" subject="LOCALHOST - Elmah - Error in Website" // Servername gets injected via web.transform async="true" priority="High" smtpPort="25" smtpServer="mail.northwind.com.au" noYsod="false" /> </elmah>
3. Wait 1 week and check that you have 0 error emails
No Go-Live if you can't get that.
Your site shouldn't throw errors, even not missing files 404 or 500.
#4 Have a zsValidate page and get all green ticks
Follow this rule http://www.ssw.com.au/ssw/Standards/Rules/RulesToBetterWebsitesTuningAndMaintenance.aspx#zsValidate
Figure: Green apples are healthy
Update: The zsValidate page checks that all your external dependencies are up and running. This might include the databases, web services, other servers, etc… Everything that is outside the web application process and everything that could cause the website from functioning.
This is part 1 out of 3 or maybe 4. Not sure yet… it is not easy to build websites these days
PS: Needless to say that before you consider this list, you should fulfill all your customer requirements, proof-read every single webpage, know what traffic to expect and have automated unit/integration/stress/performance/black and white tests