未为请求的URL配置默认文档,并且未在服务器上启用目录浏览

时间:2011-01-11 05:36:24

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

我刚刚将我的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的托管服务器。

12 个答案:

答案 0 :(得分:35)

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

<modules runAllManagedModulesForAllRequests="true" />

答案 1 :(得分:30)

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

答案 2 :(得分:17)

以下适用于IIS 7

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

  • 您没有默认页面(例如index.html,defaul.aspx) 现场。这可能意味着默认文档&#34;功能&#34;是 完全禁用,或者只是配置错误。
  • 目录浏览未启用。也就是说,如果您没有为您的默认页面提供服务 站点,也许您打算让用户导航目录内容 您的网站是通过http(如远程&#34; Windows资源管理器&#34;)。

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

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

如果这些问题都不是问题,另外要检查的是确保为您的网站配置应用程序池(在IIS管理器下,选择您的网站,然后单击&#34;基本设置&#34;在最右边)配置了相同的.Net框架版本(在IIS管理器中,#34;应用程序池&#34;)作为web.config中配置的targetFramework,例如:

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

我不确定为什么会产生这样看似无关的错误信息,但它确实对我有用。

答案 3 :(得分:5)

我在尝试使用IIS Express服务器调试我的ASP.NET网站时遇到了完全相同的错误,当我们按 F5 运行网站时,Visual Studio使用该服务器。

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

enter image description here

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

答案 4 :(得分:1)

您是否为此课程添加了默认路线?

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之后遇到了这个问题,我对该行进行了评论,原因是我已经忘记了。

希望这有帮助!

答案 5 :(得分:1)

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

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

答案 6 :(得分:0)

确保您的默认页面名称为 index.aspx ,而不是 main.aspx home.aspx 。  并且还要确保您班级中的所有属性都与数据库中的表格完全匹配。删除与数据库不同步的所有属性。这解决了我的问题!! :)

答案 7 :(得分:0)

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

在你的情况下,你可能恰恰相反 - 运行一些测试并亲自看看。

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

答案 8 :(得分:0)

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

我收到了与您相同的消息,但是随后发现我什至无法在Startup.cs中遇到一个断点,然后再让我进入this SO thread

答案 9 :(得分:0)

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

我的应用程序的默认页面是index.aspx,它不在iis Default Document窗口中。因此,我输入了index.aspx的新条目,它开始起作用。

答案 10 :(得分:0)

在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) 

这将正常工作

答案 11 :(得分:0)

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

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

我已关闭IIS管理器窗口并重新打开它,现在可见ASP.NET部分。 enter image description here 只需浏览托管网站,它就会在浏览器中显示。