【问题标题】:A default document is not configured for the requested URL, and directory browsing is not enabled on the server未为请求的 URL 配置默认文档,并且未在服务器上启用目录浏览
【发布时间】:2011-06-06 23:23:18
【问题描述】:

我刚刚将我的 asp.net mvc-2 网站部署到服务器(使用 dotnetpanel)。但是得到这个错误

A default document is not configured for the requested URL, and directory browsing is not enabled on the server.

我需要什么设置?它基于 dotnetpanel 的托管服务器。

【问题讨论】:

  • 添加 index.html 文件解决了我的问题
  • 如果问题发生在开发时该怎么办。从 Visual Studio 运行应用程序时。 如何解决这个问题?我正在运行 ASP.NET MVC 应用程序

标签: asp.net-mvc-2 web-hosting


【解决方案1】:

您的主机运行的是哪个版本的 IIS?可以尝试的一件事是在根文件夹中放置一个虚拟的 default.aspx 文件(在 MVC 工作时不会使用此文件,但可以解决此问题)。

【讨论】:

  • 添加 default.aspx 页面解决了我的问题
  • 添加 Default.aspx 并重定向到 login.aspx 解决了我的问题
  • 为什么在 MVC 应用程序中有 .aspx 文件?您将使用视图而不是 WebForms 文件。这不是答案,这是一个 hack。
  • @RobKing 我从来没有说过这不是 hack,但是 asp.net MVC 本身的部分依赖于 hack。
  • @RobKing 是的,我看到了你的答案。
【解决方案2】:

标记的答案将帮助您消除错误,但不会使 MVC 正常工作。问题的答案是在system.webServer的web.config文件中加入这一行:

<modules runAllManagedModulesForAllRequests="true" />

【讨论】:

  • 这修复了我在 IIS 7.5 上的 MVC 5 WebAPI2 站点,并在服务器上安装了 .net 4.5(不是 4.5.1)
  • 谢谢!这解决了在 SBS 上使用 IIS7 for ASP.Net MVC 5 的问题。
  • 这确实应该是公认的答案。将 MVC4 发布到 azure 后,我收到 您无权查看此目录或页面 错误。我被困了3天,但这解决了它。谢谢!
  • ASP.NET Core 3+怎么样
  • @RobKing 我实际上在 .net 核心上遇到了这个问题。有什么想法吗?
【解决方案3】:

以下适用于 IIS 7

该错误试图告诉您以下两件事之一无法正常工作:

  • 您没有默认页面(例如 index.html、default.aspx) 地点。这可能意味着默认文档“功能”是 完全禁用,或者只是配置错误。
  • 目录浏览未启用。也就是说,如果您没有为您的 站点,也许您打算让用户浏览目录内容 通过 http 访问您的网站(例如远程“Windows 资源管理器”)。

有关如何诊断和解决上述问题的说明,请参阅以下链接。

http://support.microsoft.com/kb/942062/en-us

如果这两个问题都不是问题,另一件要检查的事情是确保为您的网站配置的应用程序池(在 IIS 管理器下,选择您的网站,然后单击最右侧的“基本设置”)已配置使用与 web.config 中配置的 targetFramework 相同的 .Net 框架版本(在 IIS 管理器中的“应用程序池”下),例如:

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime targetFramework="4.0" />
  </system.web>

我不知道为什么这会产生如此看似无关的错误消息,但它确实对我有用。

【讨论】:

  • 确保 .NET 版本匹配为我修复了它。谢谢!
【解决方案4】:

在尝试使用 IIS Express 服务器调试我的 ASP.NET 网站时,我遇到了 OP 发布的相同错误。 IIS Express 是一个轻量级 Web 服务器,当我们按下 F5 时,Visual Studio 使用它来运行网站。

在 Visual Studio 中打开解决方案资源管理器 -> 展开 Web 应用程序项目节点(在我的情况下为 StudentInfo) -> 右键单击​​要在网站启动时加载的网页(在我的情况下为 StudentPortal.aspx ) -> 从上下文菜单中选择Set as Start Page 选项,如下所示。它从下一次运行开始工作。

根本原因:我得出的结论是,作为网站默认文档的起始页设置不正确,或者在开发过程中以某种方式搞砸了。

【讨论】:

  • 这对我来说是最好的解决方案,我的设置不正确
  • Hii..我正在做与我在 iis 上运行的 dotnet 核心应用程序相同的事情。我还设置了启动项目..但没有解决我的问题..请提供任何其他建议,因为我已经在上面浪费了大量时间..我正在使用 dotnet core 3.1 ..
【解决方案5】:

您是否为此类添加了默认路由?

public class RouteConfig {
    public static void RegisterRoutes (RouteCollection routes) {`
        //"HomePage" is the root view of your app
        routes.MapRoute (
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new {
                controller = "Home", action = "HomePage", id = UrlParameter.Optional
            }
        );
    }
}

` 之后在 Global.asax.cs 中将这一行添加到 Application_Start() 方法中:

RouteConfig.RegisterRoutes (RouteTable.Routes);

我在this 发布后从 MVC4 升级到 MVC5 后遇到了这个问题,我因为我忘记了原因而评论了该行。

希望这会有所帮助!

【讨论】:

    【解决方案6】:

    如果你做了一些愚蠢的事情(就像我做的那样)并将 api url 放在 Project Properties->Web 选项卡上的“Project Url”(例如http://localhost:59088/api/Product)而不是在“Specific页”文本框。这会导致 Visual Studio 继续创建一个名为 ProjectName/api/Product 的 APP,这将需要一个默认页面。撤消此操作的唯一方法是转到 C:\Program Files (x86)\IIS Express 并使用 appcmd.exe 像这样删除它

    >.\appcmd.exe delete APP "ProjectName/api/Product"
    

    【讨论】:

      【解决方案7】:

      我知道发布答案为时已晚,但我发现完全不同的情况。我尝试了上面给出的所有可能的解决方案,但这对我不起作用。 在我的案例中,我发现了非常愚蠢的错误/无知 我仔细检查了 IIS 管理器窗口,发现那里缺少 asp.net 部分。 我已经为 ASP.net 开启了 Windows 功能,下面是步骤

      1. 打开控制面板
      2. 程序\打开或关闭 Internet 的 Windows 功能
      3. 信息服务万维网服务应用程序开发
      4. 检查 - >Features ASP.Net

      我已关闭 IIS 管理器窗口并重新打开它,现在 ASP.NET 部分可见。 只需浏览托管网站,它就在浏览器上。

      【讨论】:

        【解决方案8】:

        确保您将默认页面命名为 index.aspx 而不是 ma​​in.aspxhome.aspx 之类的名称。 还要注意您的类中的所有属性都与您在数据库中的表的属性完全匹配。删除任何与数据库不同步的属性。这解决了我的问题! :)

        【讨论】:

          【解决方案9】:

          罪魁祸首可能在于 Global.asax 被放置在 mvc 项目内的错误目录中。在我的情况下,它被放置在 /Views 下,但我不得不移动它,它应该被放置在项目的根文件夹下。

          在您的情况下,您可能正好相反 - 运行一些测试并亲自查看。

          https://stackoverflow.com/a/41467885/863651

          【讨论】:

            【解决方案10】:

            就我而言,我必须安装 Microsoft.Owin.Host.SystemWeb 包。

            我收到了和你一样的消息,但后来我发现我什至无法在 Startup.cs 中打断点,然后让我进入 this SO thread

            【讨论】:

              【解决方案11】:

              我在 WebForms 应用程序中遇到了这个问题,错误清楚地表明 A default document is not configured 并且在我的情况下确实如此,未配置默认文档。对我有用的是我点击了我的网站,在 iis 的中间窗格上有一个名为 Default Document 的选项。在Default Document 中,您必须检查应用程序的默认页面是否存在。

              我的应用程序的默认页面是 index.aspx,它没有出现在 iis Default Document 窗口中。所以我新建了一个 index.aspx 条目,它开始工作了。

              【讨论】:

                【解决方案12】:

                在您的 plesk 面板中打开 IIS 设置并输入网站首页的默认文档名称(默认值为

                 Index.html
                Index.htm
                Index.cfm
                Index.shtml
                Index.shtm
                Index.stm
                Index.php
                Index.php3
                Index.asp
                Index.aspx
                Default.htm
                Default.asp
                Default.aspx) 
                

                这将正常工作

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-05-13
                  • 1970-01-01
                  • 2015-01-04
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-12-19
                  相关资源
                  最近更新 更多