MVC3发布和IIS 6

时间:2011-06-17 21:01:34

标签: visual-studio-2010 asp.net-mvc-3 .net-4.0 iis-6

我一直在与这个斗争几个小时没有进展。

我正在尝试将一个Web应用程序(MVC3,.net4,在Visual Studio 2010中制作)发布到服务器。所有谷歌最终都会导致this article,这没有任何帮助。根据它,运行在IIS 6上的MVC3(安装了MVC和.net4,它是一个2k3服务器)应该可以工作。不同的设置给我不同的问题,但没有任何作用。使用默认设置,我得到“目录列表被拒绝此虚拟目录不允许列出内容”。如果我打开目录浏览,我可以看到该网站的directoy,但这没用。

在IIS中有一个使用默认页面的选项,但我认为MVC没有使用它。当我启动它时,我的项目中没有“default.aspx”,它通过调试测试本地服务器工作正常。如果我需要一个默认页面,我不知道如何制作一个。如果我不需要,我需要在IIS 6中使用哪些设置才能正确地为页面提供服务(使用mvc模块?)。

这是我的第一个网络应用,所以我可能遗漏了一些基本的东西。我完全可以从项目中删除一些关键文件。

编辑:不确定它是否有所作为,但该网站未发布到域的根目录。该网址最终为www.company.net/directory。

编辑:我尝试在visual studio中制作一个新的MVC3应用程序,只是默认的应用程序,并立即将其发布到服务器。同样的错误。它绝对是IIS中的东西。

3 个答案:

答案 0 :(得分:15)

试试这个。

  1. 打开IIS管理器。
  2. 列表项
  3. 选择您的网站,然后选择属性。
  4. 转到虚拟目录
  5. 点击配置
  6. 关于应用程序配置
    应用程序扩展 - 添加.mvc扩展名和路径 C:\ Windows \ microsoft.net \框架\ v4.xxxxx \ ASPNET_ISAPI.DLL
  7. 在通配符应用程序映射上插入与上面相同的路径
  8. UNCHECK 验证该文件是否存在(如果检查该文件将无法运行)
  9. Phil Haack有一篇好文章:http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx

答案 1 :(得分:1)

从本地开发转移到Web服务器时,我遇到了确切的问题。由于某种原因,服务器没有设置正确的映射。检查处理程序映射配置并确保列出所有与MVC相关的映射,例如“.cshtm”和“.cshtml” - 每个扩展名应该有几个。

答案 2 :(得分:1)

我遇到了同样的问题。除了遵循上述所有步骤,我还必须在IIS中创建一个新网站。我的所有制作网站都在“默认网站”下运行。我将每个应用程序设置为虚拟目录。我的“默认网站”运行ASP.NET 2.0。这适用于所有其他应用程序。这对MVC应用程序不起作用,因为它需要ASP.NET 4.0。

为了解决这个问题,我做了以下几点:

  1. 创建了一个新的应用程序池
  2. 在inetpub下创建了一个新目录,并将其命名为wwwroot4_0
  3. 将我的应用程序移至此位置
  4. 创建一个新网站并将ASP.NET版本设置为4.0。
  5. 在新网站下,我给了它一个不同的端口,端口81
  6. 在我的新网站
  7. 下创建新应用程序作为虚拟目录
  8. 更改了我的应用程序的路径以包含扩展名.aspx

    routes.MapRoute(                 “默认”,//路线名称                 “{controller} .aspx / {action} / {id}”,//带参数的网址                 new {controller =“Home”,action =“Index”,id = UrlParameter.Optional} //参数默认值             );

  9. 我访问应用程序的方式是这样的: www.mydomainname.com:81/MyAppName/Default.aspx

    如果这有助于任何人,请告诉我。谢谢。