Hola,
Ya veo porque no te funciona..., te explicaré de manera general:
Asumiendo que existe una carpeta marcada como
Directorio Virtual en IIS:
C:\Inetpub\wwwroot\ShoppingCart
Ahora, TODOS los ensamblados que uses en tu aplicación deberían ir en:
C:\Inetpub\wwwroot\ShoppingCart\bin
Si quieres poner tus archivos aspx en una carpeta diferente, puedes hacerlo sin ningún problema, no importa el nivel de profundidad de los archivos que necesiten alguno de tus ensamblados, siempre se buscará en la carpeta bin de tu
Aplicación (C:\Inetpub\wwwroot\ShoppingCart\bin):
C:\Inetpub\wwwroot\ShoppingCart\Foo\Bar\ASPXFiles
Ahora viendo la estructura de directorio que tienes, si ASPXFiles o Aplicaciones no están marcados como directorios virtuales, entonces deberías poner tu ensamblado en C:\Inetpub\wwwroot\bin, por otro lado el Web.Config debe estar en el directorio raiz (hay la posibilidad de que también estén presentes en otros subdirectorios), NO es necesario tener el machine.config en ese directorio, el web.config basta y sobra para configurar ciertos detalles de tu aplicación.
Ahora, hasta donde sé, no hay casi diferencia entre una u otra forma de trabajar, la compilación del archivo sólo se realiza la primera vez que carga la página, si usas un ensamblado ya generado (dll), también necesita que éste se cargue en el cache de ensamblados, todo eso sucede sólo la primera vez que carga la página, puedes bajar una animación de cómo es este proceso:
http://test.buayacorp.com/dia-10.zip
Saludos
Saludos