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

cou*_*011 44 web-hosting asp.net-mvc-2

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

A default document is not configured for the requested URL, and directory browsing is not enabled on the server.
Run Code Online (Sandbox Code Playgroud)

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

Rob*_*ing 35

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

<modules runAllManagedModulesForAllRequests="true" />
Run Code Online (Sandbox Code Playgroud)

  • 这修复了IIS 7.5上的MVC 5 WebAPI2站点,服务器上安装了.net 4.5(而不是4.5.1) (3认同)
  • ASP.NET Core 3+ 怎么样? (2认同)

UpT*_*eek 34

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

  • 为什么MVC应用程序中有.aspx文件?您将使用Views而不是WebForms文件.这不是答案,它是一个黑客. (7认同)
  • 添加default.aspx页面解决了我的问题 (6认同)
  • @RobKing我从来没有说过它不是黑客,但asp.net MVC本身的部分依赖于黑客攻击. (3认同)

Haw*_*ker 17

以下适用于IIS 7

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

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

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

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

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

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime targetFramework="4.0" />
  </system.web>
Run Code Online (Sandbox Code Playgroud)

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


RBT*_*RBT 7

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

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

在此处输入图片说明

根本原因:我得出的结论是,起始页(该网站的默认文档)设置不正确,或者在开发过程中被弄乱了。