Asp.net mvc 在ASP.NET MVC中,为什么发布网站后会出现404个错误?

Asp.net mvc 在ASP.NET MVC中,为什么发布网站后会出现404个错误?,asp.net-mvc,routing,Asp.net Mvc,Routing,我对ASP.NETMVC还是一个新手,我在路由方面有点困难 使用ASP.NET开发服务器(直接从Visual Studio运行),我的应用程序可以毫无问题地找到其视图。使用标准ASP.NET URL-http://localhost:1871/InterestingLink/Register 然而,当我将我的站点发布到IIS并通过MyFancyApplication/InterestingLink/Register访问它时,我得到了一个404错误 对可能出现的问题有什么建议吗 更多信息 这是我的

我对ASP.NETMVC还是一个新手,我在路由方面有点困难

使用ASP.NET开发服务器(直接从Visual Studio运行),我的应用程序可以毫无问题地找到其视图。使用标准ASP.NET URL-
http://localhost:1871/InterestingLink/Register

然而,当我将我的站点发布到IIS并通过MyFancyApplication/InterestingLink/Register访问它时,我得到了一个404错误

对可能出现的问题有什么建议吗

更多信息

这是我的global.asax文件的外观(标准):

我的控制器也很简单:

public class InterestingLinkController : Controller
{
    public ActionResult Register()
    {
        return View("Register");
    }
}

很多事情都可能出错:

  • IIS虚拟目录和应用程序设置是否正确
  • 是否正在调用ASP.NET应用程序?(在
    应用程序\u Start
    应用程序\u BeginRequest
    中添加一些日志记录/中断点)
只是一个开始。您必须应用通常的调试方法


(为了避免类似的问题,我很少使用开发服务器,而是一直使用IIS:最困难的是每次都要记住运行VS提升版。)

我发现了问题所在。问题实际上是,当URL不包含.ASPX时,IIS5(在Windows XP中)不会启动ASP.NET。解决此问题的最简单方法是将“.aspx”添加到global.asax中的控制器部分。例如:

routes.MapRoute(
                "Default",                                              
                "{controller}.aspx/{action}/{id}",                      
                new { controller = "Home", action = "Index", id = "" }  
            );
不漂亮,但可以

routes.MapRoute(
                "Default",                                              
                "{controller}.aspx/{action}/{id}",                      
                new { controller = "Home", action = "Index", id = "" }  
            );