Asp.net mvc 4 MVC中从VS工作的默认路由,但不在测试服务器上

Asp.net mvc 4 MVC中从VS工作的默认路由,但不在测试服务器上,asp.net-mvc-4,Asp.net Mvc 4,我有一个非常简单的ASP.NETMVC4.0网站。它有一个控制器(“HomeController”)和一个操作(“Index”),该操作接收一个参数(“string id”)。我没有修改global.asax文件,因为默认情况下会处理这种路由。我没有为此操作创建视图,因为该操作只是向用户“发送”一个文件(PDF)。如果我在VisualStudio中运行该站点(使用项目属性中的默认页面“home/index/3”),该页面运行良好。但是,如果我将站点发布到我们的测试服务器(),我会得到一个404-

我有一个非常简单的ASP.NETMVC4.0网站。它有一个控制器(“HomeController”)和一个操作(“Index”),该操作接收一个参数(“string id”)。我没有修改global.asax文件,因为默认情况下会处理这种路由。我没有为此操作创建视图,因为该操作只是向用户“发送”一个文件(PDF)。如果我在VisualStudio中运行该站点(使用项目属性中的默认页面“home/index/3”),该页面运行良好。但是,如果我将站点发布到我们的测试服务器(),我会得到一个404--找不到的文件或目录

注意:我们正在该服务器上运行IIS7.5

更新:bin目录(以及相应的DLL,即以项目命名的DLL)和web.config文件都在那里


那么,这为什么不起作用呢?

如果您使用的是旧版本的IIS,并且还没有安装提供路由的MVC服务器扩展,那么您可以执行一些必要的基础结构文件

编辑:如果您正在运行IIS 7.5,您应该拥有所需的一切。您提到您没有看到web.config文件或任何DLL-您是如何发布的?您应该在发布目录的根目录下有一个web.config,在dll中有一个bin文件夹

如果右键单击web项目并进行发布,则可以发布到本地目录。这正是部署时您应该看到的


编辑2:您是否检查了它是否在IIS中配置为web应用程序而不仅仅是站点?

我刚刚发现我们正在该服务器上运行IIS7.5。编辑以反映更新的信息。TL;DR从VS发布并比较文件夹。您应该有一个web.config和一个bin目录。编辑以反映应用程序需要注册为web应用程序,这是一个愚蠢的问题-您确实将IIS配置为将发布的目录视为web应用程序(不是站点),是吗?不是愚蠢!我想我需要让我们的IT人员将该目录标记为Web应用程序!就这样。如果你想加上这个作为答案,我会这样标记。谢谢完成。很高兴事情解决了!对不起,我没早点想到这一点。:)