MVC3加载启动页面错误



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

服务器使用Windows server 2008和IIS 7。

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

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

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

http://websitename/subfolder/subfolder/Views

我们得到了同样的错误。很明显,当ww试图直接转到Razor页面时,例如:

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

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

如果我指向:

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

它什么也找不到。

它通过Visual Studio在本地主机上运行。当发布时,启动页面只是根,它通过VS运行并指向正确的位置。

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

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

如有任何帮助或正确的方向,我们将不胜感激。

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

所以你应该尝试访问

http://websitename/controller/action

控制器部分是末端带有"控制器"位的控制器的名称,例如,要访问AccountController上的登录操作,您将转到

http://websitename/Account/Login

你的行为应该在你的控制器中定义成这样

public ActionResult Login(string username, string password)

您似乎还没有安装.NET 4。请澄清您的服务器设置,如操作系统、IIS版本等?

由于某些原因,请求不会从IIS发送到ASP.Net运行时。根据您使用的IIS版本(也取决于您使用的服务器操作系统),配置会有所不同(或者根本不需要)。在MVC路由中的一些旧版本的IIS(例如Version)上,您必须向所有路由添加.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

最新更新