When working with pre-compiled web apps (sites) in VB.NET, an error like the one shown below can often come up:
The reason for this is an out of sync deployment of the .aspx files and the dlls in the bin folder. The aspx files at run time link with these dlls whose names look something like this:
App_Web_uoepimmx.dll and for every build and publish, the names of these dll files change and get updated in the aspx file like so:
<%@ page language="VB" autoeventwireup="false" masterpagefile="~/Site.master" inherits="default, App_Web_uoepimmx" %>
(#RANT: this is the price you pay if you create a pre-compiled app i.e. while creating a project in VS if you select “New WebSite” rather than “ASP.NET Web Application” :X)
Hence if you just need to deploy one dll or just the bin folder, its safest and best to re-deploy the whole website -configs, aspxs, masters the whole shebang altogether. DONT JUST COPY THE NEW DLL(s) OVER THE OLD ONES since the aspx files would still be referring to the old dlls. I learnt this lesson this morning when one of our users reported that the app was crashing during a live demo. This was the exact problem with it.
MORAL(s) OF THE STORY
create an “ASP.NET Web Application” rather than “Create a New Website”
“Test the application before a demo rather than during it”.