1

I've got an ASP.NET 4.0 web application (webforms, not mvc; asp.net routing isn't used) that runs fine under IIS7. When I try to run it under IIS6 and navigate to http://localhost/MyApp/, I get the following exception:

File does not exist.
System.Web.HttpException
 at System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response) (+0 IL, +2509040 JIT)
 at System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context, String overrideVirtualPath) (+54 IL, +198 JIT)
 at System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state) (+263 IL, +347 JIT)
 at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() (+214 IL, +8967220 JIT)
 at System.Web.HttpApplication.ExecuteStep(HttpApplication.IExecutionStep step, Boolean& completedSynchronously) (+54 IL, +184 JIT)

Note that this output comes from my own custom error page. Thus, .NET itself is working fine. I can even remotely debug it and stuff.

Now, if I enter http://localhost/MyApp/Default.aspx, all works fine, I get the default page, etcetera. The first thought would be that the default document isn't specified in IIS, but it is. Even worse - if I disable it altogether, I still get the same error message (and yes, I restarted IIS and cleared my browser cache)!

It seems as if the request for / is always sent directly to ASP.NET which then gets confused because it doesn't have any default document concept. But I don't have any wildcard mappings defined, so how can that be?

Vilx-
  • 104,512
  • 87
  • 279
  • 422

1 Answers1

1

After Googling I found this one as a solution. Its unrelated but some commented its working. Can you please try this.

In the Windows registry, open the following node: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0

1.Create a new DWORD value named EnableExtensionlessUrls. 2.Set EnableExtensionlessUrls to 0. This disables extensionless URL behavior. 3.Save the registry value and close the registry editor. 4.Run the iisreset command-line tool, which causes IIS to read the new registry value

JayOnDotNet
  • 398
  • 1
  • 5
  • 17
  • That's a global solution for a local problem. I don't want to do this on client machines because they might need it. Still... it does seem that this is the root of the issue... – Vilx- Jan 23 '12 at 11:25
  • I accepted your answer because it is obviously the source of the problem. I won't set the registry key, but knowing what has caused it will allow me to write a workaround in my app. – Vilx- Jan 23 '12 at 11:26