aspnet_client, the metabase, and frustrted by aspnet_regiis -c
Disclaimer, I'm mid-research. Don't believe anything I say, or even read this post. :)
So we needed to deploy a new codeline for testing to our QA environment. I'm the "buildmaster", so it falls on me to setup all the build goo, and actually deploy to QA. Once the team in charge of the branch gave me the green light, I went about my merry way. I added the new site, set everything up, deployed, smokescreen tested (logged in), and sent out my notice. It's not 10 minutes later, and I get an IM... help, the client side validators don't work!
Not a problem, I've been through this before, in fact it was around sp1 time. Of course I forget that, but that other dev had sent this link also. After reading, and remembering, I ran the aspnet_regiis -ea and then -c, and magically everything worked. Good enough, let me know when you need another push.
Welp, a few bug fixes later, the team asks me deploy a new QA version. Good enough, I let ccnet do it's thing, delete the old site, replace it, all done. Come in today to a new email about the client side validators not working. Hmm.. I guess I could run aspnet_regiis -ea/-c again, but something doesn't feel right about that. They need the site now, so I run the command, and start my research.
First thing I notice is I have an aspnet_client folder in the site that was not working, but a long time site does not have the aspnet_client folder, yet both work. Hmm. The only logical explanation at this point is there must be something in the metabase. I find Metabase explorer to take a peek inside. Sure enough, here is the difference between the listings in the metabase.
Site with aspnet_client in metabase

Site with aspnet_client installed from aspnet_regiis -c

So, my question is how did those metabase bindings get on the old vdir, and how do I get them on the new vdirs and sites without manually editing it. I have searched a ton on this, and it seems like everyone's solution is aspnet_regiis -c. Does no one else agree that maintaining a local copy of these files in each site/vdir is not only bad practice, but prone to deployment/version control errors? Why doesn't aspnet_regiis -c do the metabase mapping by default, or how can I get those metabase mappings without manually editing the metabase each time? Am I think only that sees this as a problem?!