我刚刚安装了Web Developer Express 2008和MVC框架(遵循所有默认设置,在此过程中安装了SQL Server Express)。我按照最初的NerdDinner步骤,从IDE创建了一个数据库并定义了表(工作正常)。
为了进一步定义我的表,这些表严重依赖于用户群,我不得不弄清楚如何将用户表添加到我新创建的数据库中(因此我可以创建带有外键到users表的表),所以我“跳”到手册中的身份验证和授权部分,他们提到我需要从目录“C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727”运行“aspnet_regsql.exe”。
我找到了该文件并运行了它。
它要求服务器名称并且有一些默认值(它是我的计算机名称的首字母)。我不记得在安装Visual Web Developer期间明确提到任何这样的名称,我认为它是默认的。选择“Windows身份验证”。我也可以选择“SQL服务器身份验证”,但我不记得创建它所需的用户名和密码。
当我选择数据库时,单击“数据库”组合框的下拉列表,需要几秒钟,然后它会发出以下错误消息:
“无法从SQL服务器查询数据库名称列表。 建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)“
我在网上对此进行了研究,并没有为我看似微不足道的问题找到一个简单的解决方案。
为了澄清,我不想要远程连接,而是本地连接。
在我继续使用regsql进程之前,是否需要执行本地SQL Server Express安装所需的步骤?
这是普通的香草,开箱即用安装......有什么想法吗?
答案 0 :(得分:7)
如果您想继续使用该向导,它实际上是一个非常简单的解决方案。在出现此问题的“选择服务器和数据库”屏幕上,“服务器”文本框中的默认值将设置为您的计算机名称。附加要连接的SQL Server的特定实例(即LOCALHOST可能变为LOCALHOST \ SQLEXPRESS)。
如果您指向有效的实例,则“数据库”下拉列表将按预期填充。
答案 1 :(得分: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文件夹中。
此信息来自this blog post,我在过去成功使用它来为具有MDF文件数据库的SQL Server Express项目设置成员资格表。
答案 2 :(得分:1)
这个问题根本与asp.net mvc无关,它纯粹是一个数据库问题。
根据你的描述。
与网络相关或特定于实例的 建立一个错误时发生错误 连接到SQL Server。服务器 没找到或无法访问。 验证实例名称是否为 正确和SQL Server是 配置为允许远程 连接。
我会确定:
1> sql express正在运行。 2 - ;你为连接设置了什么样的协议。我通常选择tcp / ip。
希望这有帮助。
答案 3 :(得分:1)
您可以查看如何针对SQL Express运行aspnet_regsql(有很多关于它的博客文章)。我有过在过去工作正常的问题(可能是坏运气),但你也可以这样做:
Lame解决方法,我知道,但是它可以让你在没有太多摆弄的情况下启动并运行。