【问题标题】:Why am I getting a 404 with ASP.NET?为什么我在 ASP.NET 中得到 404?
【发布时间】:2011-04-09 01:48:11
【问题描述】:

我刚开始使用 ASP.NET,我之前的所有经验都是桌面编程。 VS2010 SP1,我正在查看 Microsoft 的音乐商店教程。我正在尝试创建一个 hello, world 页面,但它只是返回 404。

Win 7 64 位,IIS 已安装并适用于 HTML,我编写了一个静态页面,可以正确提供,但现在我希望服务器做一些有用的事情。

当我在 VS 中按 F5 时,ASP.NET 开发服务器会按预期显示在任务栏中,但我得到的只是 404。请注意,这 不是来自 IIS 的 404,它看起来非常不同。这说明我连接的是 ASP.NET 服务器,而不是 IIS 服务器。

我很确定这是一个配置问题(几乎没有其他问题,我很难想象还有任何其他错误),但 Google 没有提供任何相关信息。我应该去哪里看?

回复:cmets - 当我返回 404 页面时,它正在到达服务器,而不是找不到服务器错误。

教程: http://mvcmusicstore.codeplex.com/releases/view/59112#DownloadId=197609

【问题讨论】:

  • Web 开发服务器使用大量端口,您知道您是否有防火墙会阻止对这些端口的访问?
  • 显示 404 的 URL 是什么?
  • @K Ivanov: localhost:5547 (带有适当的斜线,此处将被剥离。)
  • 这可能是一个愚蠢的问题,但是您是否将要查看的页面设置为 VS.NET 中的启动页面?您应该能够右键单击该页面并说“设置为启动页面”。
  • 你有default.aspx页面吗?

标签: asp.net configuration


【解决方案1】:

要显示默认页面,您需要在 Controllers 文件夹中创建一个名为 HomeController 的控制器。

public class HomeController : Controller
{
    //
    // GET: /Home/

    public string Index()
    {
        return "Hello From Home";            
    }
}

在 MVC 中,默认情况下,Urls 连接到控制器名称(减去“控制器”)和方法名称。创建 Index 方法基本上等同于创建 index.htm 页面。创建此控制器后,您应该能够调出以下 url(假设 ASP.NET Web 服务器在端口 12345 上运行):

http://localhost:12345/
http://localhost:12345/Home

两者都应显示文本“Hello From Home”。此外,假设您创建了一个如下所示的控制器:

public class Default1Controller : Controller
{
    //
    // GET: /Default1/

    public string Index()
    {
        return "This is the index";
    }

    public string MyNewPage()
    {
        return "This is the new page";
    }
}

此控制器将显示在以下 URL:

http://localhost:12345/default1 - should show "This is the index"
http://localhost:12345/default1/mynewpage - should show "This is the new page"

【讨论】:

  • 顺便说一句,我发现了真正让我震惊的地方——当我尝试一切我能想到的让页面出现时,我在一个可以工作的地方打错了字。当我在你的 cmets 之后返回并在浏览器历史记录中发现拼写错误的 URL 时,我才发现它。
  • 呃,错字。不时发生在每个人身上。不过,很高兴您能够找出问题所在。
猜你喜欢
  • 1970-01-01
  • 2016-07-19
  • 2011-08-26
  • 2017-09-10
  • 1970-01-01
  • 1970-01-01
  • 2013-03-08
  • 2023-01-12
  • 1970-01-01
相关资源
最近更新 更多