Thursday, December 11, 2003 6:08 AM
Our team is now concentrating to deliver v1.1 of the application and also work is also going on in parallel regarding prototypes and things like that for 1.2.
One of the important milestones we need to complete include migrating our application from Fx1.0 to Fx1.1. So every body is gearing up by installing Vs.Net 2003, registering script mappings to vroots and things like that.
One of our smart team members happened to ask me what happens in case I open IIS vroot configuration and map .aspx to 1.1 aspnet_isapi.dll and map .ascx to 1.0 aspnet_isapi.dll [ aspnet_isapi.dll is the dll which actually plays the role of a bootstrapper to route the Http call (unmanaged in IIS) to the asp.net runtime (in the managed world). ]
I configured a small app (this is a simple app which uses inline code and couple of ascx files for certain UI items) to serve aspx files from 1.1 and ascx files from 1.0. On accessing pages the results were suprising. If the .aspx page is configured to service calls using 1.1fx then the .ascx also gets processed using 1.1fx only.
It made me think for quite some time before I could figure that the logic is pretty simple...
When I request a specific file type directly from the browser (Http://myIIS/myApp/myFile1.ascx) depending on the script map the file will be processed by the relevant version. And ofcourse except aspx pages we cannot access any other pages directly the asp.net runtime will give a access forbidden error. Now if the file being accessed is .aspx and the script map for .aspx is fx1.1 then 1.1 asp net runtime will process the file which in turn will see to it that it compiles the .ascx file and emit the html output.
hence .ascx and .aspx files will be processed by the same fx version.
Another point is what happens if I map .asax script map to a different fx version? :D
Though I did not try this what I believe would typically happen is for the global handler to come to play it needs to be accessed by a page hence once again depending on the aspx script map the framework will be decided.