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

Asp.net mvc 2 未为请求的URL配置默认文档,并且服务器上未启用目录浏览,asp.net-mvc-2,web-hosting,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的托管服务器。您的主机运行的是哪个版本的IIS?要尝试的一件事是将一个伪default.aspx文件放在根文件夹中(MVC

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

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

以下内容适用于IIS 7

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

  • 您的应用程序没有默认页面(例如index.html、default.aspx) 地点。这可能意味着默认文档“功能”是 完全禁用,或者只是配置错误
  • 未启用目录浏览。也就是说,如果您没有为您的 站点,可能您打算让用户浏览目录内容 通过http访问您的站点(如远程“windows资源管理器”)
有关如何诊断和修复上述问题的说明,请参阅以下链接

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

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


我不知道为什么这会产生这样一个看似无关的错误消息,但对我来说确实如此。

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

<modules runAllManagedModulesForAllRequests="true" />

确保将默认页面命名为index.aspx,而不是类似于main.aspxhome.aspx
还要确保类中的所有属性与数据库中表的属性完全匹配。删除与数据库不同步的所有属性。这解决了我的问题!!:)

是否已将默认路线添加到此类

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中,将此行添加到应用程序_Start()方法:

在我从MVC4升级到MVC5之后,我遇到了这个问题,因为我忘记了一个原因,我对这一行进行了评论


希望这有帮助

如果您做了一些愚蠢的事情(如我所做的),并将api url放在“项目属性->Web”选项卡上的“项目url”(例如)中,而不是在“特定页面”文本框中指定它,也会发生这种情况。这将导致VisualStudio继续创建一个名为ProjectName/api/Product的应用程序,这将需要一个默认页面。撤消此操作的唯一方法是转到C:\Program Files(x86)\IIS Express并使用appcmd.exe以类似方式删除它

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

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

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


在尝试使用IIS Express server调试ASP.NET网站时,我遇到了OP发布的相同错误。当我们按F5时,VisualStudio使用IIS Express运行网站

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


根本原因:我得出结论,网站默认文档的起始页设置不正确,或者在开发过程中出现了问题。

在我的情况下,我必须安装
Microsoft.Owin.Host.SystemWeb


我收到了与您相同的消息,但后来注意到我甚至无法在
Startup.cs
中点击断点,这让我想到了。

我在一个WebForms应用程序中遇到了这个问题,错误清楚地表明,
默认文档未配置
,在我的情况下也是如此,未配置默认文档。对我有效的是,我点击了我的站点,在iis的中间窗格中有一个名为
defaultdocument
的选项。在
默认文档中
必须检查应用程序的默认页面是否存在


我的应用程序的默认页面是index.aspx,它不存在于iis
default Document
窗口中。因此,我创建了一个新的index.aspx条目,它开始工作。

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

这将正常工作

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

  • 打开控制面板
  • 程序\打开或关闭Internet上的Windows功能
  • 信息服务万维网服务应用程序开发
  • 检查ASP.Net的->功能
  • 我已关闭IIS管理器窗口并重新打开,现在ASP.NET部分可见。
    只需浏览托管网站,它就可以在浏览器上运行。

    这修复了我在IIS 7.5上的MVC 5 WebAPI2网站,服务器上安装了.net 4.5(而不是4.5.1)。谢谢!这解决了SBS上的问题,IIS7用于ASP.net MVC 5。这真的应该是ac
     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)