locked
ASP.NET Configuration (HTTP Error 404.3 - Not Found) RRS feed

  • Question

  • User162817481 posted

    I am unable to serve up an ASP.NET page from IIS 7.0 on Windows Vista RC 1 (Ultimate Edition). Requests for an ASP.NET page (i.e. default.aspx) return the following message:

    HTTP Error 404.3 - Not Found

    Description: The page you are requesting cannot be served because of the Multipurpose Internet Mail Extensions (MIME) map policy that is configured on the Web server. The page you requested has a file name extension that is not recognized, and is not allowed.

    Error Code: 0x80070032

    ASP.NET is installed and enabled on IIS 7.0 (via the "Windows Features" applet in the Control Panel). When I examine the handler mappings for the machine (itself), the following entries are listed:

    PageHandlerFactory-Integrated | *.aspx | Enabled | Unspecified | System.Web.UI.SimpleHandlerFactory | Local

    PageHandlerFactory-ISAPI-1.1 | *.aspx | Enabled | Unspecified | IsapiModule | Local

    PageHandlerFactory-ISAPI-2.0 | *.aspx | Enabled | Unspecified | IsapiModule | Local

    Note: These entries (above) are not listed for the default Web site or any of its applications. (I can only assume that they are inherited.)

    When I explicitly add a handler for the path, "*.aspx" to one of my applications, the error no longer appears. However, the ASP.NET does not appear to execute. (The content served back from IIS 7.0 is empty.)

    I would appreciate any advice to help resolve this issue.

    Thursday, September 21, 2006 12:41 PM

All replies

  • User1356161706 posted

    I assume you request the .aspx page in the root app on the default site, e.g. http://localhost/mypage.aspx

    Can you send the output of the following commands:

    %windir%\system32\inetsrv\appcmd list apppools

    %windir%\system32\inetsrv\appcmd list apps

    and

    %windir%\system32\inetsrv\appcmd list config "Default Web Site/" -section:handlers

    If you don't request the page from the root app on the default web site you might have to change the 'appcmd list config' command to list the handler section from your app.

     

     

    Thursday, September 21, 2006 4:02 PM
  • User162817481 posted

    No. The same behaviour (i.e. HTTP Error 404.3 - Not Found) occurs when a request is made to an ASP.NET page in the root app on the default site (i.e. http://localhost/foo.aspx).

    The following is the output of the commands specified above:

    C:\>%windir%\system32\inetsrv\appcmd list apppools
    APPPOOL "DefaultAppPool" (MgdVersion:v2.0,MgdMode:Integrated,state:Started)
    APPPOOL "Classic .NET AppPool" (MgdVersion:v2.0,MgdMode:Classic,state:Started)

    C:\>%windir%\system32\inetsrv\appcmd list apps
    APP "Default Web Site/" (applicationPool:DefaultAppPool)
    APP "Default Web Site/Hello" (applicationPool:DefaultAppPool)

    C:\>%windir%\system32\inetsrv\appcmd list config "Default Web Site/" -section:handlers
    <system.webServer>
      <handlers accessPolicy="Script, Read">
        <add name="TRACEVerbHandler" path="*" verb="TRACE" type="" modules="Protocol
    SupportModule" scriptProcessor="" resourceType="Unspecified" requireAccess="None
    " preCondition="" />
        <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" type="" modules="Prot
    ocolSupportModule" scriptProcessor="" resourceType="Unspecified" requireAccess="
    None" preCondition="" />
        <add name="StaticFile" path="*" verb="*" type="" modules="StaticFileModule,D
    efaultDocumentModule,DirectoryListingModule" scriptProcessor="" resourceType="Ei
    ther" requireAccess="Read" preCondition="" />
      </handlers>
    </system.webServer>

    C:\>%windir%\system32\inetsrv\appcmd list config "Default Web Site/Hello" -section:handlers
    <system.webServer>
      <handlers accessPolicy="Script, Read">
        <add name="iframecall.axd_*" path="iframecall.axd" verb="*" type="Microsoft.
    Web.Services.IFrameHandler" preCondition="integratedMode,runtimeVersionv2.0" />
        <add name="atlasglob.axd_*" path="atlasglob.axd" verb="*" type="Microsoft.We
    b.Globalization.GlobalizationHandler" preCondition="integratedMode,runtimeVersio
    nv2.0" />
        <add name="atlasbatchcall.axd_*" path="atlasbatchcall.axd" verb="*" type="Mi
    crosoft.Web.Services.MultiRequestHandler" preCondition="integratedMode,runtimeVe
    rsionv2.0" />
        <add name="*.asbx_*" path="*.asbx" verb="*" type="Microsoft.Web.Services.Scr
    iptHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" />
        <add name="*.asmx_*" path="*.asmx" verb="*" type="Microsoft.Web.Services.Scr
    iptHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" />
        <add name="TRACEVerbHandler" path="*" verb="TRACE" type="" modules="Protocol
    SupportModule" scriptProcessor="" resourceType="Unspecified" requireAccess="None
    " preCondition="" />
        <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" type="" modules="Prot
    ocolSupportModule" scriptProcessor="" resourceType="Unspecified" requireAccess="
    None" preCondition="" />
        <add name="StaticFile" path="*" verb="*" type="" modules="StaticFileModule,D
    efaultDocumentModule,DirectoryListingModule" scriptProcessor="" resourceType="Ei
    ther" requireAccess="Read" preCondition="" />
      </handlers>
    </system.webServer>

    In both instances (above), the HTTP handler for the .aspx file extension appears to be missing from the application configs. It would appear as though the "Windows Features" applet did not correctly establish the appropriate configuration entries. For example, when I explicitly add the HTTP handler for the .aspx file extension to the web.config file for one of my applications, the page is processed correctly.

    The following element was added to /configuration/system.webServer/handlers in web.config:

    <add name="*.aspx" path="*.aspx" verb="*" type="System.Web.UI.PageHandler" preCondition="integratedMode,runtimeVersionv2.0" />

    When this element (above) is added to the web.config file, the ASP.NET page is processed and the expected response is served to the browser.

    It seems that a problem exists with the "Windows Features" applet; enabling ASP.NET to run in IIS 7.0 does not establish the necessary configs. Unless I'm mistaken, once ASP.NET has been enabled, the expected behaviour is for IIS 7.0 to process any ASP.NET pages from that point on. Is this not the case? Are developers required to explicitly define a HTTP handler in the web.config for every application hosted by IIS 7.0?

    Thanks for your help!

    Thursday, September 21, 2006 6:16 PM
  • User1356161706 posted

    You are right. The ASP.NET mappings are not installed. I don't know why to be honest. Was there something with Atlas and IIS7? I thought I read something somewhere. Did you install Atlas afterwards and what version of Atlas?

    Can you have a look into the %windir%\IIS7.log file if there is something that could help us?

     

    Thursday, September 21, 2006 6:50 PM
  • User162817481 posted

    ASP.NET "Atlas" was installed before I enabled ASP.NET in IIS 7.0. Is there an issue with ASP.NET "Atlas" and IIS 7.0?

    I looked in the IIS 7.0 logfile and found nothing of note.

    Sunday, September 24, 2006 12:32 AM
  • User-329398768 posted

    Hey buddy, did you enable all services on RC1?

    See this: http://www.netomatix.com/Development/IIS7_404Error.aspx

    I met the same problem like you and after 2 hrs Googling and testing I found out that the problem is because when you click on the IIS7 checkboxes in Vista RC1, it is actually that you didn't select all sub-items like Asp.net all so. Hence you need to expand all of them, or you need to click again.
     

    Sunday, September 24, 2006 6:01 AM
  • User162817481 posted

    Yes, the necessary services are enabled.

    Sunday, September 24, 2006 8:55 AM
  • User-2026410440 posted

    does your web.config for Default Web Site clear the system.webServer/handlers section?  Is there a location tag in applicationHost.config for Default Web Site which clears it?

    bill

    Monday, September 25, 2006 12:16 PM
  • User162817481 posted

    The web.config file for the Default Web Site does not clear the system.webServer/handlers section. However, there is a location tag in applicationHost.config for the Default Web Site which does:

    <configuration>
     <!-- ... -->
     <location path="Default Web Site">
      <system.webServer>
       <handlers>
        <clear />
        <add name="TRACEVerbHandler" path="*" verb="TRACE" type="" modules="ProtocolSupportModule" scriptProcessor="" resourceType="Unspecified" requireAccess="None" preCondition="" />
        <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" type="" modules="ProtocolSupportModule" scriptProcessor="" resourceType="Unspecified" requireAccess="None" preCondition="" />
        <add name="StaticFile" path="*" verb="*" type="" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" scriptProcessor="" resourceType="Either" requireAccess="Read" preCondition="" />
       </handlers>
       <!-- ... -->
      </system.webServer>
     </location>
     <location path="" overrideMode="Allow">
      <system.webServer>
       <handlers accessPolicy="Script, Read">
        <clear />
        <!-- ... -->
        <add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
        <add name="PageHandlerFactory-ISAPI-1.1" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.Net\Framework\v1.1.4322\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv1.1,bitness32" />
        <!-- ... -->
       </handlers>
       <!-- ... -->
      </system.webServer>
     </location>
    </configuration>

    Please note that certain sections were replaced with comments (<!-- ... -->) for readability.

    Tuesday, September 26, 2006 12:12 PM
  • User-2026410440 posted

    interesting - that explains why you are not seeing an .aspx script map for Default Web Site.  It is possible that some tool or installer (maybe atlas) somehow cleared the handlers list at some point.  this looks like something ABOMapper may have written out. 

     Do you know what may have caused this to show up?  when did you first notice it?

    Tuesday, September 26, 2006 4:17 PM
  • User162817481 posted
    This behaviour appeared as soon as I installed and enabled IIS 7.0. ASP.NET "Atlas" was installed before IIS 7.0.
    Wednesday, September 27, 2006 6:59 PM
  • User375962278 posted

    I just put vista on my machine and IIS7 with it.

    I have enabled ALL the features including development of asp.net

    I can see the aspx handler in the handler console of IIS7 and when executing:
    C:\>%windir%\system32\inetsrv\appcmd list config "Default Web Site/" -section:handlers 

    but still when I browse to any aspx page in my virtual directory I get error 404.3 (MIME not configured etc...)

    I made sure aspx is registered using aspnet_regiis -i

    I also removed and reinstalled IIS (enabling all its features) but still 404.3

    What Can I do?

    manu@sela.co.il

    Thursday, October 12, 2006 5:07 PM
  • User924062823 posted

    I had a similar problem and ran across an blog here: http://www.west-wind.com/wconnect/weblog/ShowEntry.blog?id=493

     Basically what fixed this for me was opening up the ISAPI and CGI Restrictions manager in IIS 7 and found that the "Restriction" column for ASP.NET 1.1.4322 was "Not Allowed".  Once I allowed this it started working.

     Hope that helps.

    - Dan

    Monday, October 16, 2006 1:12 PM
  • User-2084729685 posted

    Hi -- I am also getting this problem.  Running on Vista RC2 with all ASP install options checked.

    I also noticed that the handlers that should have been installed by Visual Studio 2005 (e.g., for *.cs, *.csproj, *.vsdisco, etc.) are missing from the applicationHost.config.

    When I execute  appcmd on "Default Web Site", I do not see the handlers for aspx, asmx, etc.

    I do not have .NET 1.1 installed on the system.  Have tried re-installing VS2005, ASP Feature many times.

    Do advice how this problem can be solved.  Thanks!

     Nick Wong

    Tuesday, October 17, 2006 9:00 AM
  • User209782248 posted

    It sounds like several different problems.  Let me try to separate them:

    jbristowe - 1412228: Some program, or possibly a bug in our ABO compatibility layer, has caused your handler list to be cleared for the "Default Web Site", removing the globally configured handler mappings for ASP.NET 2.0. 

    By removing the location tag that introduces the <clear> in the <handlers> section, you should be able to recover. 

    However, if you can provide a more detailed description of what led to that config, we can investigate whether this was a bug.

    manukahn - 1427193: You are having a similar issue.  I posted a (likely) solution on your other thread - .1437278

    danhop - 1431322: You are using ASP.NET 1.1 and required to enable the ASPNET_ISAPI.dll for ASP.NET 1.1 in order to make it work.  This is expected, unless you also ran the ASPNET_REGIIS tool and expected it to enable your ISAPI and it didnt.  If so, that is a separate issue we should look into.

    wongkyn - 1431322: Are you any of the above? :)  If not, what is it?

    Thanks,

    Mike Volodarsky

    Program Manager
    IIS Core Server
    Visit mvolo.com for more inside information on IIS7, IIS and ASP.NET

    Monday, October 23, 2006 1:51 AM
  • User-85009986 posted

    I got into the same issue as jbristowe. Doing what you said, deleting the <clear> in the <handlers> section for the Default Web Site did the trick. I also had a bunch of duplicate add statements in there for other mappings, once i deleted those too it inherited all of the global mappings which is what i wanted it to do. How it came up with this config is a mystery to me. Here is the <handlers> part that was in my applicationHost.config file

                 <handlers>
                    <clear />
                    <add name="TRACEVerbHandler" path="*" verb="TRACE" type="" modules="ProtocolSupportModule" scriptProcessor="" resourceType="Unspecified" requireAccess="None" preCondition="" />
                    <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" type="" modules="ProtocolSupportModule" scriptProcessor="" resourceType="Unspecified" requireAccess="None" preCondition="" />
                    <add name="StaticFile" path="*" verb="*" type="" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" scriptProcessor="" resourceType="Either" requireAccess="Read" preCondition="" />
                </handlers>

    Sunday, November 5, 2006 7:42 PM
  • User-85009986 posted
    What's weird now is that each new virtual directory I create now will have a new web.config file created in that physical directory. In that web.config file are the new 'default' handlers which causes my problems. Nuking that web.config file seems to allow it to inherit from the global default handlers. Something must have messed up how new virt. dirs are created and/or whatever default contents they are supposed to have in their web.config file.
    Sunday, November 5, 2006 7:57 PM
  • User209782248 posted

    How are you creating these vdirs, that is causing the web.config to be generated?

    Thanks,

    Mike Volodarsky

    Program Manager
    IIS Core Server
    Visit mvolo.com for more inside information on IIS7, IIS and ASP.NET

    Monday, November 6, 2006 2:44 AM
  • User-85009986 posted

    Very sorry, more careful inspection shows that this may have been a remnant from before I removed the <clear> tag from the applicationHost.config file. I tried it with a brand new virtual directory (added using IIS Manager) and new physical location and there is no web.config file. It also inherited all the mappings from the Default Web Site.

     Any idea how come the <clear/> tag was in the applicationHost.config file to begin with?

    Monday, November 6, 2006 12:40 PM
  • User209782248 posted

    We are trying to determine this ... if anyone has a set of repro steps that result in this configuration, please share it!

    Thanks,

    Mike Volodarsky

    Program Manager
    IIS Core Server
    Visit mvolo.com for more inside information on IIS7, IIS and ASP.NET

    Friday, November 10, 2006 8:02 PM
  • User-1074404395 posted

    I experienced a similiar issue, however I cannot confirm that the .NET Extensibility, ASP, ASP.NET, ISAPI Extensions, ISAPI Filters were installed before installing Atlas RTM.

     Here is my order for (possibly) repro'ing this problem, should it exist:

     1. Install VS2005

    2. Install Atlas RTM

    3. Install IIS

     

    Hope this helps

    Tuesday, February 13, 2007 12:35 PM
  • User744861993 posted

    I had the same problem with a <clear /> tag being in my handlers section (I upgraded to Vista from XP SP2).  When I removed the <clear /> tag and tried to access my default web site I got a configuration error complaining about a duplicate entry.  I put back in the <clear /> tag and added a script map ASPNET-ISAPI-2.0-PageHandlerFactory  for *.aspx to point to C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll and now my default site works.  I do have a some questions.

     I notice that there are ASPNET-ISAPI-1.1 maps for *.axd, *.rem, *.soap, *.ashx, and *.asmx. 

    1. Should I put in 2.0 maps for those?

    2. Are there any other 2.0 specific maps I should add?

    3. Is there a list somewhere of what the IIS 7.0 default web site mappings should be with a clean install?

    Thanks,

    Bill

     

    Friday, April 20, 2007 2:01 PM
  • User511787461 posted
    There should be a copy of the clean-install applicationhost.config in the inetsrv\config directory.
    Friday, April 20, 2007 2:45 PM
  • User744861993 posted

    There should be a copy of the clean-install applicationhost.config in the inetsrv\config directory.

    Thanks.  If that applicationhost.config.clean.install file is what is reall used, then that means that even deleting the <clean /> tags would not have helped as it has no Framework 2.0 handlers defined in the file.  How do these get into IIS 7.0?  I can't believe that everyone has to put them in manually.

    By the way, now that I have the 2.0 stuff working, my 1.1 applications now just give me "Bad Request" for the first attempt and "Server Application Unavailable" when I hit the reload button.  It also puts an entry in the application log "Failed to execute request because the App-Domain could not be created. Error: 0x80131522".  There seem to be a lot of hits on that error for a search but I haven't found one that works for me yet.

     This is getting to be like Whack-A-Mole!
     

    Saturday, April 21, 2007 10:50 AM
  • User744861993 posted
    By the way, now that I have the 2.0 stuff working, my 1.1 applications now just give me "Bad Request" for the first attempt and "Server Application Unavailable" when I hit the reload button.  It also puts an entry in the application log "Failed to execute request because the App-Domain could not be created. Error: 0x80131522".  There seem to be a lot of hits on that error for a search but I haven't found one that works for me yet.

     This is getting to be like Whack-A-Mole!

    OK, I found a way to fix the problem.  I had this in the ASP.NET 1.1 Application Pool which seemed reasonable to me because it was the only 1.1 Pool.  I moved it into AppPool_Medium which has "No Managed Code" for the .NET Framework Version and the "Bad Request" etc. errors went away.  It also seems to run OK regardless if the Managed Pipeline is set to either Classic or integrated.

    I must say that on the surface it appears very counter-intuitive that 1.1 code wouldn't run in an application pool with the framework version set to 1.1.  Anybody got an explanation or a reference that explains why this is the case? 

    Saturday, April 21, 2007 12:53 PM
  • User511787461 posted

    How IIS7 upgrade works is that, it does an install of IIS and then brings over all the downlevel settings - the reason asp.net mappings are not there in the clean-install file is that asp.net is not included in the install that upgrade does before bringing over the down-level settings.

    Also, on IIS6 (and earlier versions), the way to use different versions of asp.net on the server was to change the ScriptMaps on each of the site to point to the right version, which soon leads to a lot of scriptmaps and management problems, the new better IIS7 way has ScriptMaps (handlers) of all asp.net versions in the global defaults with preconditions and then which asp.net version gets run gets chosen by setting on the app-pool that the app resides in.

    An upgrade (to maintain most compatibility, and because there is only so much time we want to spend on writing upgrade code) leaves things in the state IIS6 was in, so you get each app with its own ScriptMap (with no preconditions), so the settings on the app-pool really have no affect.  Also, this means that any changes you do to the global handlers list have no effect.

    I think you will be more happy long-term if you save the current applicationhost.config - completely uninstall IIS (including Windows Process Activation Service) and do a clean-install - then create the apps and app-pools you want and set the app-pool settings to the right asp.net version/pipeline mode etc.  The resulting config file will be much more managable in the future in terms of moving apps from one version to another or adding new apps for various versions.

    Saturday, April 21, 2007 6:19 PM
  • User-116634327 posted

    I'm having a the same error on vista home premium however my laptop with vista business is working fine. I do not have "atlas" installed, unless it is done by default as I'm not even sure what "atlas" is.

    Both machines have asp enabled but the home premium machine will not serve up the required .aspx page. In my case it does seem related to the application since I have other .aspx pages which do work, they are in different application pools and from different vendors.

    My main and underlying question and concern is why does it work on the vista business machine and not on the vista home machine?

    Any help would be much appreciated.

     

    Rob

    Saturday, October 20, 2007 10:55 AM
  • User1957639188 posted

    Hi everyone, thx for the the effort, but i just dont get it,  whats causing this problem?

    i have IIS7 installed on a Vista Ultimate and I use VWD2008 Express.

    Whenever i try to goto " http://localhost/default.aspx " , i get this error:

    HTTP Error 404.3 - Not Found

    Description: The page you are requesting cannot be served because of the Multipurpose Internet Mail Extensions (MIME) map policy that is configured on the Web server. The page you requested has a file name extension that is not recognized, and is not allowed.

    Error Code: 0x80070032

    Notification: ExecuteRequestHandler

    Module: StaticFileModule

    Requested URL: http://localhost:80/default.aspx

    Physical Path: E:\inetpub\wwwroot\default.aspx

    Logon User: Anonymous

    Logon Method: Anonymous

    Handler: StaticFile

    ----- 

    now what can i do to fix this problem putting into consideration that i have enabled  everything in the Application Development features in the World Wide Web Services in the IIS from Turn on Windows features.

    Can any one give me simple answer or guide on how to solve this,

    THX

    Friday, November 14, 2008 8:05 PM
  • User1957639188 posted

    ok i think i found out what was my problem but still i need some professional opinion, it was the handlers, I opened my default website from the iis manager and opened the handler mappings, clicked add managed handler, Request path : " *.aspx ", Type : " System.Web.DefaultHttpHandler ", and for name i typed " ASPX ", then i ran my localhost/default.aspx, et voila, it's workin.

    Kindly correct me if i am wrong

    my problem now is that before i do that i uninstalled and reinstalled the iis 7 , and deleted the web.config and other files from the wwroot directory, Is there a default web.config to start with or where can i find the basic web.config that is created for the first time

    thx

    Saturday, November 15, 2008 6:11 PM
  • User48985431 posted

     When you installed IIS7 on Vista, Did you install support for ASP.NET?

    http://learn.iis.net/page.aspx/472/how-to-install-aspnet-11-with-iis7-on-vista-and-windows-2008/

    Tuesday, February 1, 2011 12:23 PM
  • User-1860479883 posted

    This problem often occures due to Handler Mappings:

    Locate PageHandlerFactory-ISAPI-2.0 in Handler Mappings double click on it and you will see how the script map is configured.  We now need to manually create the same for v4.0

    So right click and select the top menu item "Add Script Map..." and enter the following:

    *.ashx
    SimpleHandlerFactory-ISAPI-4.0
    %windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll

    You should also do this for ashx:

    *.ashx
    C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
    SimpleHandlerFactory-ISAPI-4.0

    Now the server serves aspx pages for .net 4.0, easy!

     

    Friday, March 4, 2011 1:42 PM
  • User1013014362 posted
    Thanks for that - sorted me out! Cant believe the default setup for win7 IIS is ASP disabled.
    Thursday, December 22, 2011 5:21 AM