MVC3加载启动页面错误

时间:2012-08-31 09:09:05

标签: c# asp.net-mvc-3 iis web-config visual-studio-2012

好的,作为一家公司,我们在Web服务器上部署了我们的第一个MVC3应用程序。已设置为处理.NET

服务器使用Windows Server 2008和IIS 7.

但是,当我们将浏览器指向URL时,我们会收到此错误。

目录列表被拒绝 此虚拟目录不允许列出内容。

当我们将其指向已知路径时,例如:

http://websitename/subfolder/subfolder/Views

我们得到同样的错误。显然当ww尝试直接进入Razor页面时,例如:

http://websitename/subfolder/subfolder/Views/Pages/Index.cshtml

正如您所期望的那样,它会下载.cshtml文件,因为浏览器无法读取.cshtml,它会读取生成的.html文件。

如果我指向:

http://websitename/subfolder/subfolder/Views/Pages/Index.html

它无法找到任何东西。

它可以通过Visual Studio在localhost上运行。并且在发布时,启动页面只是根,它会运行并通过VS指向正确的位置。

我的问题是你如何手动指向Web服务器上生成的html,或者当我转到服务器上的根目录时是否有找到起始页面的原因?

我检查了IIS并确保将正确的内容设置为本地副本'true',并且我还将runAllManagedModulesForAllRequests =“true”添加到我的web.config文件中。

任何帮助或正确方向的观点都将受到赞赏。

3 个答案:

答案 0 :(得分:2)

在MVC中,您不通过浏览器访问视图,访问控制器上的操作,然后他们返回视图。

所以你应该尝试访问

http://websitename/controller/action

控制器部分是控制器的名称,其中“控制器”位从末端开始,例如,要访问AccountController上的Login操作,您将转到

http://websitename/Account/Login

您的操作应该在控制器中定义类似的内容

public ActionResult Login(string username, string password)

答案 1 :(得分:1)

您好像没有安装.NET 4。 请问您能澄清一下您的服务器设置,例如操作系统,IIS版本等吗?

答案 2 :(得分:0)

由于某种原因,请求不会从IIS传递到ASP.Net运行时。这是不同的配置(或根本不需要),具体取决于您使用的IIS版本(这也取决于您使用的服务器操作系统)。在MVC-Routing中的某些旧版本的IIS(例如版本)上,您必须向所有路由添加.aspx(或任何其他扩展名)(请参阅Global.asax),然后配置IIS以将所有.aspx请求路由到ASP.Net子系统。较新版本的IIS不需要所有这些。

MS的以下教程可能有所帮助: http://www.asp.net/mvc/tutorials/older-versions/deployment/using-asp-net-mvc-with-different-versions-of-iis-cs