C# 书呆子晚餐返回404所有子页面

C# 书呆子晚餐返回404所有子页面,c#,asp.net,asp.net-mvc,nerddinner,C#,Asp.net,Asp.net Mvc,Nerddinner,我刚买了一台新的WindowsServer2003机器,我一直在试着让书呆子吃晚饭。服务器已经有.NET3.5SP1、ASP.NETMVC等 当我通过FTP将Nerd晚餐上传到主网页的子目录时,当我转到网站中除根目录之外的任何页面时,我会得到404,并且主页上不会显示地图 例如,当我转到“关于”页面时,我会得到以下IIS日志条目: 2009-08-13 17:56:10 128.200.123.118 GET/nerddinner/Home/About-80-128.200.123.89 Moz

我刚买了一台新的WindowsServer2003机器,我一直在试着让书呆子吃晚饭。服务器已经有.NET3.5SP1、ASP.NETMVC等

当我通过FTP将Nerd晚餐上传到主网页的子目录时,当我转到网站中除根目录之外的任何页面时,我会得到404,并且主页上不会显示地图

例如,当我转到“关于”页面时,我会得到以下IIS日志条目:

2009-08-13 17:56:10 128.200.123.118 GET/nerddinner/Home/About-80-128.200.123.89 Mozilla/4.0+(兼容;+MSIE+8.0
)40403

我非常困惑,因为这是一份刚从Codeplex下载并编译的书呆子晚餐

如果有帮助,这里有一个日志条目,来自获取映射JavaScript的失败尝试(注意完全缺少“/nerddinner”):

2009-08-13 18:03:05 128.200.123.118 GET/Scripts/Map.js-80-128.200.123.89 Mozilla/4.0+(兼容;+MSIE+8.0
)40403

我有一种强烈的感觉,我应该能够在asax.cs文件中解决这个问题,但即使在前面添加了“nerddinner/”之后,我也无法让它正常工作

对发生的事情有什么想法吗

编辑:我把它上传到webfolder的根目录下,404s继续运行

编辑2:谢谢你的建议。我按照指示做了,现在我没有得到404。然而,还有两个主要问题:

  • 脚本和内容文件夹映射不正确。我得到了这些文件夹中所有文件引用的404
  • 我根本看不到晚餐。我得到:
  • 描述:处理服务此请求所需的配置文件时出错。请查看下面的特定错误详细信息,并适当修改配置文件

    还有一行红色,上面写着“
    ”。除了ConnectionStrings.config在服务器上不存在之外,根据VS,它不是一个重要的文件,因此,我不知道错误指的是什么

    (快速搜索我的本地硬盘会发现一个ConnectionString.config文件,其中没有任何内容)

    编辑3:

    现在我想当我去看晚餐的时候,我得到了相当于SQLServer404的东西

    建立与SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:SQL网络接口,错误:26-定位指定的服务器/实例时出错)

    帮助他人在IIS6上运行ASP.NET MVC的摘要,特别是书呆子晚餐:

  • IIS 6可能会向您抛出成堆的404,因为它不理解文件可以没有扩展名。要解决此问题,请按照中的步骤进行操作
  • ASP.NETMVC URL重写不是魔术。它只重写通过代码传输的URL。对脚本、图像、数据库、直接链接(又名a href标记;不是动态生成的标记)等的引用不会基于应用程序的目录重新映射对于“书呆子晚餐”应用程序,请浏览页面并在引用这些引用之前添加“/nerddinner/”。用子目录的名称替换“nerddinner”
  • 获取数据库并将其连接到服务器上的SQL Server(或SQL Server Express)。将网络用户添加到具有读/写角色的数据库
  • 为您的设置填写正确的连接字符串。在我的例子中,我通过IP地址引用服务器,并使用SQL server 2005,因此我的连接字符串是:


  • 你在IIS6上运行它吗?如果是,则需要修补路由表以考虑.ASPX扩展,IIS6或多或少需要.ASPX扩展

    Phil Haack有一个很好的演练来解释这个过程。他还解释了不使用.ASPX扩展名的方法:

    脚本和内容文件夹不可用 正确地绘制地图。我得到了所有的404 对这些文件中的文件的引用 文件夹

    在ASP.NET中,MVC文件不会像在ASP.NET中那样将一对一映射到URL。相反,路由表中的匹配将GET或POST请求从浏览器转移到某个控制器中的控制器方法。从那里,控制器决定(显式或按约定)显示哪个视图

    测试过程中发生错误 配置文件的处理 服务此请求所必需的。 请查看具体错误 请参阅下面的详细信息并修改您的 配置文件


    ConnectionStrings.config需要存在于服务器上,因为它在web.config中被引用。它是一个包含文件,因此不一定要包含任何内容。但是如果它被引用,则需要将其包含在服务器上,因此只需使用FTP程序将其复制到服务器上即可。

    Windows server 2003默认附带IIS6。你查过路由表了吗?