2012-08-31 95 views
0

好吧,所以作为一家公司,我们在Web服务器上部署了我们的第一个MVC3应用程序。已成立了处理.NETMVC3加载启动页面错误

服务器使用Windows Server 2008和IIS 7

然而,当我们将浏览器指向我们收到此错误的URL。

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

当我们将它指向一个已知路径,例如:

http://websitename/subfolder/subfolder/Views 

我们得到了同样的错误。显然,当WW尝试直接去剃刀页面,例如:

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

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

如果我指出:

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

它不能发现任何东西。

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

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

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

任何帮助或正确的方向点将不胜感激。

+0

服务器操作系统的版本是什么来定义这样的事情和IIS您正在使用? – Marc

+0

使用IIS6?阅读此:http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx – robasta

+0

我们正在使用Windows Server 2008和iis 7. – Bohdi

回答

1

看来你还没有安装.NET 4. 请你澄清你的服务器设置,如操作系统,IIS版本等?

+0

澄清在原始文章在顶部。 – Bohdi

+0

由于您使用的是mvc3,因此安装了.NET 4? – AndreCruz

+0

刚刚检查,然后在服务器上的asp.net 3.5,这是问题吗? – Bohdi

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

2

在MVC中,你不通过浏览器访问视图,您可以访问控制器上的行动,他们又将返回一个视图。

所以,你应该尝试访问

http://websitename/controller/action 

控制器部分是“控制器”有点控制器的名称投掷关底,例如访问上的AccountController一个登录动作,你会去

http://websitename/Account/Login 

你的行动应在控制器

public ActionResult Login(string username, string password) 
+0

好吧,所以我有一个名为PagesController.cs的控制器,并且作为其CRUD,它具有“编辑”操作。但是,当我尝试访问http://www.websitename/subfolder/subfolder/Pages/Edit时,我没有看到那个错误,而是得到了'this page can not be found'404页面。 – Bohdi

+0

是websitename /子文件夹/子文件夹的应用程序的根?通常它只是websitename /。对404s进行排序依赖于IIS版本,所以其他答案可能会有所帮助。 – joocer