【问题标题】:ASP.NET 4.0 application cannot find Default.aspx under IIS6ASP.NET 4.0 应用程序在 IIS6 下找不到 Default.aspx
【发布时间】:2012-01-23 10:44:38
【问题描述】:

我有一个在 IIS7 下运行良好的 ASP.NET 4.0 Web 应用程序(webforms,而不是 mvc;没有使用 asp.net 路由)。当我尝试在 IIS6 下运行它并导航到 http://localhost/MyApp/ 时,出现以下异常:

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)

请注意,此输出来自我自己的自定义错误页面。因此,.NET 本身运行良好。我什至可以远程调试它和其他东西。

现在,如果我输入 http://localhost/MyApp/Default.aspx,一切正常,我会得到默认页面,等等。第一个想法是在 IIS 中没有指定默认文档,但它是。更糟糕的是 - 如果我完全禁用它,我仍然会收到相同的错误消息(是的,我重新启动了 IIS 并清除了浏览器缓存)!

似乎/ 的请求总是直接发送到 ASP.NET,然后由于没有任何默认文档概念而​​感到困惑。但是我没有定义任何通配符映射,那怎么可能呢?

【问题讨论】:

  • 您是否在“目录”选项卡中检查了目录浏览
  • @moguzalp - 我不希望人们能够列出我的目录的内容。

标签: asp.net iis-6 asp.net-4.0 default-document


【解决方案1】:

谷歌搜索后,我找到了这个作为解决方案。它无关,但有人评论它的工作。 你能试试这个吗?

在 Windows 注册表中,打开以下节点:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\4.0.30319.0

1.创建一个名为 EnableExtensionlessUrls 的新 DWORD 值。 2.将 EnableExtensionlessUrls 设置为 0。这将禁用无扩展 URL 行为。 3.保存注册表值并关闭注册表编辑器。 4.运行iisreset命令行工具,使IIS读取新的注册表值

【讨论】:

  • 这是针对本地问题的全局解决方案。我不想在客户端机器上这样做,因为他们可能需要它。不过……看来这确实是问题的根源……
  • 我接受了您的回答,因为这显然是问题的根源。我不会设置注册表项,但知道导致它的原因将允许我在我的应用程序中编写解决方法。
猜你喜欢
  • 2011-02-07
  • 2013-09-28
  • 2011-03-29
  • 1970-01-01
  • 2015-11-12
  • 2011-05-06
  • 2011-01-12
  • 1970-01-01
  • 2011-04-07
相关资源
最近更新 更多