ASP.NET MVC5未针对请求的URL配置Web服务器,并且未在服务器上启用目录浏览

时间:2015-11-20 13:44:25

标签: c# asp.net-mvc iis

我在从MVC5应用程序加载页面时遇到问题。

我安装并使用了这个软件:

  • Windows 10
  • Visual Studio Enterprise 2015
  • Microsoft IIS 10.0 Express
  • 带有实体框架的MVC 5

直到现在一切正常,我能够显示网站。 在创建模型之后,使用实体框架的控制器之后我收到了此错误消息。

HTTP Error 403.14 - Forbidden
The Web server is configured to not list the contents of this directory.

Most likely causes:

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


Things you can try:

    If you do not want to enable directory browsing, ensure that a default document is configured and that the file exists.
    Enable directory browsing.
        Go to the IIS Express install directory.
        Run appcmd set config /section:system.webServer/directoryBrowse /enabled:true to enable directory browsing at the server level.
        Run appcmd set config ["SITE_NAME"] /section:system.webServer/directoryBrowse /enabled:true to enable directory browsing at the site level.
    Verify that the configuration/system.webServer/directoryBrowse@enabled attribute is set to true in the site or application configuration file.

Detailed Error Information:
Module     DirectoryListingModule
Notification       ExecuteRequestHandler
Handler    StaticFile
Error Code     0x00000000
Requested URL      http://localhost:2063/
Physical Path      c:\users\johan\documents\visual studio 2015\Projects\MvcMovie2\MvcMovie2
Logon Method       Anonymous
Logon User     Anonymous
Request Tracing Directory      C:\Users\johan\Documents\IISExpress\TraceLogFiles\MVCMOVIE2

首先,我开始提供错误消息给我的建议。

这两种方法都很好   - cd进入IIS Express安装目录
  - appcmd set config /section:system.webServer/directoryBrowse /enabled:true

然后我试着运行这个命令:
appcmd set config ["SITE_NAME"] /section:system.webServer/directoryBrowse /enabled:true

我将["SITE_NAME"]替换为:
- ["SITE_NAME"]
- ["localhost"]
- ["MovieDb2"]
- "MovieDb2"
- [MovieDb2]
- MovieDb2
他们都没有工作,我收到一条错误信息:
ERROR ( message:Cannot find SITE object with identifier ["SITE_NAME"]

我已经能够找到很多文档,但这些都可以追溯到.ASPX格式和旧版本的IIS Express。

在Visual Studio中,我右键单击了应用程序的一个index.cshtml文件,然后单击“设置为起始页”
即使在重建之后,这也行不通。

接下来,我发现了一些您必须在IIS管理器中进行一些更改的信息。我搜索了很多,但我找不到IIS管理器 即使使用此链接:https://msdn.microsoft.com/nl-nl/library/bb763170.aspx
命令inetmgr仅返回错误。

到Web.config我添加了这段代码:

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

这也没有解决问题。

之后,我按照此页面中的步骤操作:HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory

但是我还必须进入IIS管理器,我无法找到它。

我真的希望有人能解决这个问题 提前致谢。

5 个答案:

答案 0 :(得分:0)

您的根目录是空的(index.html,index.aspx vb。),我认为您的项目web.config默认文档属性未设置。

目录浏览Web.config属性

    <configuration>

  <location path="special_directory_name_here">
   <system.webServer>
    <directoryBrowse enabled="true" />
   </system.webServer>

  </location>
</configuration>

请配置您的项目默认路由设置,因为您的默认路由设置不会重定向到控制器。

更改默认路线设置

http://blogs.msdn.com/b/prakasht/archive/2013/08/08/change-the-default-route-in-asp-net-mvc.aspx

默认文档属性web.config

<configuration>
   <system.webServer>
    <defaultDocument>
        <files>
            <add value="index.php" />
        </files>
    </defaultDocument>
   </system.webServer>
</configuration>

答案 1 :(得分:0)

我终于明白了。 我所要做的就是更改RouteConfig.cs中的URL


url: "{controller}/{action}/{name}/{id}"

url: "{controller}/{action}",

答案 2 :(得分:0)

这是快速应用程序测试目的的快速解决方案,并非旨在解决根本原因 - 而不是MVC

答案 3 :(得分:0)

这是解决我的具体问题的原因:

从Visual Studio中,右键单击“网站项目”&gt;属性&gt;网络&gt;选择“特定页面”&gt;浏览&gt;选择默认页面。

如果您使用的是MVC 5或更高版本,请确保删除移动“.cshtml”并删除Views目录。例如,该目录将显示为Views / ControllerName / Index.cshtml。删除视图,使其显示为ControllerName / Index

答案 4 :(得分:0)

一旦我在App_start文件夹中向RouteConfig.cs添加了特定的地图路线,我的问题就消失了

'routes.MapRoute(“购买土地”,//字符串名称                   “ BuyLands / Index”,//字符串网址                    new {controller =“ BuyLands”,Action =“ Index”});

//控制器名称为BuyLands'