4

我刚刚安装了 Web Developer Express 2008 和 MVC 框架(遵循所有默认设置,在此过程中安装了 SQL Server Express)。我按照最初的NerdDinner步骤,从 IDE 创建了一个数据库并定义了表(工作正常)。

为了进一步定义严重依赖用户群的表,我必须弄清楚如何将用户表添加到我新创建的数据库中(这样我就可以使用用户表的外键创建表),所以我“跳转到手册中的身份验证和授权部分,他们提到我需要从目录“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727”运行“aspnet_regsql.exe”。

我找到了文件并运行了它。

它要求提供服务器名称并具有一些默认值(它是我的计算机名称的首字母)。我不记得在安装 Visual Web Developer 的过程中明确提到过任何这样的名称,我认为它是默认的。选择“Windows 身份验证”。我也可以选择“SQL 服务器身份验证”,但我不记得创建它所需的用户名和密码。

当我来选择数据库时,我点击“数据库”组合框的下拉菜单,需要几秒钟,然后它会喊出以下错误消息:

“无法从 SQL Server 查询数据库名称列表。建立与 SQL Server 的连接时发生与网络相关的或特定于实例的错误。未找到或无法访问服务器。验证实例名称是否正确,并且SQL Server 配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接)"

我在网上对此进行了研究,并没有为我看似微不足道的问题找到简单的解决方案。

澄清一下,我不想要一个远程连接,而是一个本地连接。

在继续执行 regsql 进程之前,是否需要使用本地 SQL Server Express 安装执行任何步骤?

这是普通的香草,开箱即用的安装......有什么想法吗?

4

4 回答 4

7

如果您想继续使用该向导,它实际上是一个非常简单的解决方案。在您遇到此问题的“选择服务器和数据库”屏幕上,“服务器”文本框中的默认值将设置为您的计算机名称。附加您希望连接到的特定 SQL 服务器实例(即 LOCALHOST 可能变为 LOCALHOST\SQLEXPRESS)。

如果您指向一个有效的实例,您的“数据库”下拉列表将按预期填充。

于 2010-02-14T15:51:05.577 回答
6

首先,复制 MDF 文件的备份,以防此命令完全占用您的工作。试试这个:aspnet_regsql -A all -C "Data Source=.\SQLEXPRESS;Integrated Security=True;User Instance=True" -d "PATH_TO_MY_DATABASE.MDF_FILE"

更改PATH_TO_MY_DATABASE.MDF_FILE为 MDF 文件的完整路径。它很可能位于您的 APP_DATA 文件夹中。

此信息来自此博客文章,我过去曾成功使用它为带有 MDF 文件数据库的 SQL Server Express 项目设置成员表。

于 2009-06-27T18:16:21.810 回答
1

这个问题根本与 asp.net mvc 无关,它纯粹是一个数据库问题。

从你描述的情况来看。

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。

我会确保:

1> sql express 正在运行。2> 你为连接设置了什么样的协议。我通常选择 tcp/ip。

希望这可以帮助。

于 2009-06-27T17:57:55.427 回答
1

您可以查看如何针对 SQL Express 运行 aspnet_regsql(有很多关于它的博客文章)。过去我在让它正常工作时遇到过问题(可能是运气不好),但你也可以这样做:

  1. 创建项目后运行 MVC 应用程序
  2. 单击登录链接,然后注册一个新帐户(这将为您创建一个 SQL Express 数据库)
  3. (可选但方便:) 在 VS 中,将 MDF 文件添加到项目中(它在 App_Data 下)
  4. (可选:)重命名 MDF 文件,并更新 web.config 中的连接字符串(将 aspnetdb.mdf 替换为 NerdDinner.mdf 或您选择的任何名称)

蹩脚的解决方法,我知道,但它会让你启动并运行,而不需要太多的摆弄。

于 2009-06-27T18:32:17.307 回答