View Complete Thread
  • tmarq tmarq

    48 Posts

    Microsoft

    Re: Failed to Execute Url (System.Web.DefaultHttpHandler.BeginProcessRequest) on IIS7

    Nov 20, 2007 06:27 PM|tmarq|LINK

    I'm not able to reproduce the problem that you're observing.  I created an IIS application on Windows Server 2008 RC0 with the following web.config file in my application's root folder:

    <configuration>
      <system.webServer>
        <handlers>
          <add name="ASPNET" path="*" verb="*" modules="IsapiModule"
                  scriptProcessor="D:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll"
                  resourceType="Unspecified" requireAccess="None"
                  preCondition="classicMode,runtimeVersionv2.0,bitness32" />
        </handlers>
      </system.webServer>
    </configuration>

    Note that my web.config file adds the wildcard * mapping so all requests are sent to aspnet_isapi.dll.  When I request a JPG file, it is served by ASP.NET, which I confirmed by setting a break point on System.Web.DefaultHttpHandler.BeginProcessRequest. 

    Also, after modifying the files in the test you posted at http://youngfoundations.org/iistest.zip to include the wildcard * mapping to aspnet_isapi.dll, I am able to serve JPG files with your test too.

    I'm not sure what you are doing differently.  Perhaps you could do the following:

    1. Create a new application and make sure that you are using the default <handlers> as they appear in the applicationHost.config file.  In other words, make sure the <handlers> are not modified by root web.config file at %WINDIR%\Microsoft.NET\Framework%ARCH%\v2.0.50727\config, the web.config at \inetput\wwwroot, or in the web.config file of any (parent) applications that contain your applicaiton.

    2. Make sure the application is configured for classic mode.

    3. Now, in this new and clean application, create a wildcard * mapping to aspnet_isapi.dll.  You can do this via IIS Manager.  After you do this, you should see a new web.config file in the root folder of your application with a <handlers> section that contains the wildcard * mapping to aspnet_isapi.dll, and nothing else.

    4. Now if you request a JPG file, it should be served by ASP.NET.  You could use a break point to confirm this.

    After following these 4 steps, does System.Web.Hosting.ISAPIWorkerRequestInProcForIIS6.BeginExecuteUrl still throw an HttpException with the message "Failed to Execute URL"?  Or is this working now?

    Thanks,
    Thomas