0

我刚买了一台新的 Windows Server 2003 机器,我一直在尝试让 Ne​​rd Dinner 安装到它上面。服务器已经有 .NET 3.5 SP1、ASP .NET MVC 等。

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

例如,当我转到 about 页面时,我得到以下 IIS 日志条目:

2009-08-13 17:56:10 128.200.123.118 GET /nerddinner/Home/关于 - 80 - 128.200.123.89 Mozilla/4.0+(兼容;+MSIE+8.0 <snip>)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>)404 0 3

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

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

编辑:我将它上传到 web 文件夹的根目录,404s 继续。

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

  1. 脚本和内容文件夹未正确映​​射。我对这些文件夹中的文件的所有引用都得到 404。
  2. 我根本看不到晚餐。我得到:

说明:处理服务此请求所需的配置文件期间发生错误。请查看下面的具体错误详细信息并适当地修改您的配置文件。

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

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

编辑3:

现在我想当我去查看晚餐时,我得到了相当于 SQL Server 404 的东西......

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

帮助其他人在 IIS6 上运行 ASP .NET MVC 的总结,尤其是 Nerd Dinner:

  1. IIS 6 可能会向您抛出大量 404,因为它不理解文件可以没有扩展名。要解决这个问题,请按照Phil Haack 的博客文章中的步骤操作。
  2. ASP .NET MVC URL 重写并不神奇。它只重写通过代码管道传输的 URL。对脚本、图像、数据库、直接链接(也称为 href 标签;不是动态生成的标签)等的引用不会根据应用程序的目录重新映射。对于 Nerd Dinner 应用程序,浏览页面并在对这些引用的引用前添加“/nerddinner/”。用您的子目录名称替换“nerddinner”。
  3. 获取数据库并将其附加到服务器上的 SQL Server(或 SQL Server Express)。将网络用户添加到具有读/写角色的数据库中。
  4. 为您的设置填写正确的连接字符串。就我而言,我通过 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"/>

4

2 回答 2

4

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

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

于 2009-08-13T18:30:49.600 回答
3

脚本和内容文件夹未正确映​​射。我对这些文件夹中的文件的所有引用都得到 404。

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

处理服务此请求所需的配置文件期间发生错误。请查看下面的具体错误详细信息并适当地修改您的配置文件。

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

于 2009-08-13T20:13:51.893 回答