所有子页面的书呆子晚餐都会返回404

时间:2009-08-13 18:27:39

标签: c# asp.net asp.net-mvc nerddinner

我刚买了一台新的Windows Server 2003机器,我一直试图让Nerd Dinner进入它。服务器已经有.NET 3.5 SP1,ASP .NET MVC等。

当我通过FTP将书呆子晚餐上传到主网页的子目录时,当我去网站中的任何页面时,我得到404,除了根目录和主页没有事件显示地图。

例如,当我转到about页面时,我会收到以下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 <snip&gt;)404 0 3

我非常困惑,因为这是Codeplex的Nerd Dinner的新下载和编译副本。

如果它有帮助,这里是失败的尝试获取地图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 <snip&gt;)404 0 3

我有一种强烈的感觉,我应该能够在asax.cs文件中解决这个问题,但即使在将“nerddinner /”附加到前面之后我也无法完成它。

有关正在发生的事情的任何想法?

编辑:我将其上传到网络文件夹的根目录,然后404继续。

编辑2:感谢您的建议。我按照说明操作,现在我没有404。但是,还有两个主要问题:

  1. 脚本和内容文件夹无法正确映射。我对这些文件夹中的文件的所有引用都获得了404.
  2. 我根本看不到晚餐。我得到:
  3. <击>
      

    描述:处理为此请求提供服务所需的配置文件时发生错误。请查看下面的具体错误详细信息并适当修改配置文件。

    和一行显示为"<connectionStrings configSource="ConnectionStrings.config" />的红色。除了服务器上不存在ConnectionStrings.config,因此根据VS它不是一个重要文件,因此,我不知道是什么错误是指。

    (快速搜索我的本地硬盘会显示一个没有任何内容的ConnectionStrings.config文件)

    编辑3:

    现在,当我去观看晚餐时,我认为我得到了相当于SQL Server 404的程度......

      

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

    总结帮助其他人在IIS6上运行ASP.NET MVC,特别是书呆子晚餐:

    1. IIS 6可能会向您扔掉一堆404,因为它不理解文件没有扩展名。要解决此问题,请按照Phil Haack's blog post
    2. 中的步骤操作
    3. ASP .NET MVC URL重写不是魔术。它只重写通过代码传送的URL。不会根据应用程序的目录重新映射对脚本,图像,数据库,直接链接(也称为href标记;而不是动态生成的标记;等)的引用。 对于书呆子晚餐申请,请浏览这些页面并在参考这些参考文献前添加“/ nerddinner /”。用您子目录的名称替换“nerddinner”。
    4. 获取数据库并将其附加到服务器上的SQL Server(或SQL Server Express)。将网络用户添加到具有读/写角色的数据库中。
    5. 为您的设置填写正确的连接字符串。就我而言,我是指通过IP地址和使用SQL Server 2005的服务器,所以我的连接字符串是:

      <add name="NerdDinnerConnectionString" connectionString="Data Source=128.200.123.118; Initial Catalog=NerdDinner; Integrated Security=SSPI" providerName="System.Data.SqlClient.SqlConnection"/>

2 个答案:

答案 0 :(得分:4)

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

Phil Haack有一个很好的演练来解释这个过程。他还解释了在没有.ASPX扩展的情况下你可以做到的方法:
http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx

答案 1 :(得分:3)

  

脚本和内容文件夹没有   正确映射。我得到404s   引用那些文件   文件夹。

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

  

期间发生错误   处理配置文件   需要为此请求提供服务。   请查看具体错误   详情如下并修改您的   配置文件适当。

ConnectionStrings.config需要存在于服务器上,因为它在web.config中被引用。它是一个包含文件,因此不一定必须包含任何内容。但如果它被引用,它需要包含在服务器上,所以只需用你的FTP程序将它复制到那里。