【问题标题】:Where should the database be for this code?这段代码的数据库应该在哪里?
【发布时间】:2013-01-03 02:45:29
【问题描述】:

我有以下 web.config 文件,其中包含如下代码:

<connectionStrings> <add name="CustomerManagementConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|CustomerManagement.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" providerName="System.Data.SqlClient" /> <add name="Entities" connectionString="metadata=res://*/App_Code.CustomerManagement.csdl|res://*/App_Code.CustomerManagement.ssdl|res://*/App_Code.CustomerManagement.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\CustomerManagement.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /> </connectionStrings>

但是,当我运行 Visual Studio Web 应用程序项目时,它给了我以下信息:

“/CustomerManagement”应用程序中的服务器错误。 -------------------------------------------------- ------------------------------ 由于启动用户实例的进程失败,无法生成 SQL Server 的用户实例。连接将被关闭。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 异常详细信息:System.Data.SqlClient.SqlException:由于启动用户实例的进程失败,无法生成 SQL Server 的用户实例。连接将被关闭。

以前,它给我以下错误消息,我通过安装 SQL Express Edition 2005 解决了。

“/CustomerManagement”应用程序中的服务器错误。 建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例) 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 异常详细信息:System.Data.SqlClient.SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

所以,我想知道错误指的是哪个数据库。它是指 SQL Server 中的数据库还是位于项目文件中的 mdf。

(请注意,这个项目是由另一个人完成的,我正在尝试了解数据库在哪里。谢谢)

【问题讨论】:

    标签: c# asp.net sql-server visual-studio-2010 mdf


    【解决方案1】:

    尝试删除以下目录的内容:

    C:\Users\&lt;user name&gt;\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS.

    (将&lt;user name&gt;替换为您当前登录的帐户。)

    欲了解更多信息,请参阅:Error: Failed to generate a user instance of SQL Server

    【讨论】:

    • 感谢 moncadad,它给了我另一个错误 - The database 'D:\LABFILES\APP_DATA\CUSTOMERMANAGEMENT.MDF' cannot be opened because it is version 655. This server supports version 611 and earlier. A downgrade path is not supported. Could not open new database 'D:\LABFILES\APP_DATA\CUSTOMERMANAGEMENT.MDF'. CREATE DATABASE is aborted. An attempt to attach an auto-named database for file D:\LABFILES\APP_DATA\CustomerManagement.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.
    • 看起来可能是 SQL Server 2005 和 2008 的兼容性问题。尝试从 App_Data 文件夹中删除 .MDF 和 .LDF 文件。它们应该在重新编译后重新创建。 ** 请务必先备份您的 MDF 文件!! **
    • 顺便说一句,我不明白为什么C:\Users\&lt;user name&gt;\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS 文件夹在那里。该文件夹的存在是否有目的?
    • 感谢 moncadad,但我似乎无法从 App_Data 文件夹中找到 ASPNETDB.MDFaspnetdb_log.ldf 两个文件。
    • @Jack 抱歉,这是一个复制/粘贴错误。您的文件将有所不同。尝试删除 .MDF 和 .该目录中的 LDF 文件(无论名称如何)请参阅我修改后的评论。
    【解决方案2】:

    简而言之:确保您的计算机上正在运行您的默认 SQL 实例(主要是名为 .\SQLEXPRESS 的快速版本)。您的计算机上似乎未设置默认 SQL 实例。

    您可以通过 SSMS 工具进行检查。这是一个链接 - SQL Server Management Studio (SSMS) Basics

    相关帖子 - Cannot register default instance MSSQLSERVER in SQL Server 2008

    【讨论】:

    • 其实 .\SQLEXPRESS 已经和其他 SQL 实例一起运行了。顺便问一下,如何检查 .\SQLEXPRESS 是否为default SQL 实例?
    • @Jack,我已将其发布在我的答案中。
    猜你喜欢
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 2012-06-04
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多