我在从MVC5应用程序加载页面时遇到问题。
我安装并使用了这个软件:
直到现在一切正常,我能够显示网站。 在创建模型之后,使用实体框架的控制器之后我收到了此错误消息。
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管理器,我无法找到它。
我真的希望有人能解决这个问题 提前致谢。
答案 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 :
ASP.NET应用程序从http://localhost:port#/
答案 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'