代码之家  ›  专栏  ›  技术社区  ›  Roee Adler

ASP.NET MVC新手:无法使aspnet_regsql.exe正常工作

  •  4
  • Roee Adler  · 技术社区  · 17 年前

    我刚刚安装了WebDeveloperExpress 2008和MVC框架(遵循所有默认设置,在此过程中安装了SQLServerExpress)。我遵循最初的原则 NerdDinner 步骤,从IDE创建数据库并定义表(工作正常)。

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

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

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

    为了澄清,我不想要远程连接,而是本地连接。

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

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

    4 回复  |  直到 17 年前
        1
  •  7
  •   hqrsie    16 年前

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

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

        2
  •  6
  •   Ben Robbins    17 年前

    首先,复制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_数据文件夹中。

    此信息来自 this blog post

        3
  •  1
  •   J.W.    17 年前

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

    根据你描述的。

    与网络相关或特定于实例的 建立数据库时出错 连接到SQL Server。服务器 找不到或无法访问。 验证实例名称是否正确 正确,并且SQL Server是 配置为允许远程访问 连接。

    我会确保:

    2>您为连接设置了哪种协议。我通常选择tcp/ip。

        4
  •  1
  •   Jimmy    17 年前

    1. 创建项目后运行MVC应用程序
    2. (可选:)重命名MDF文件,并更新web.config中的连接字符串(将aspnetdb.MDF替换为NerdDinner.MDF或您选择的任何名称)

    我知道这是一个蹩脚的解决办法,但它可以让你在没有太多麻烦的情况下启动和运行。