【问题标题】:First chance exception of 'System.Data.EntityException'. The underlying provider failed on Open'System.Data.EntityException' 的第一次机会异常。基础提供程序在打开时失败
【发布时间】:2013-11-26 04:02:20
【问题描述】:

我收到了一个由其他人创建的网站,我现在正在尝试对其进行测试。我可以编译系统没有任何问题,但是当我尝试登录网站时,我收到错误:

"EntityException occured. A first chance exception of type 'System.Data.EntityException' occured in System.Data.Entity.dll. Additional info: The underlying provider failed on Open."

此外,如果我深入挖掘,我会看到一个 InnerException Cannot open database \"MyDB\" requested by the login. The login failed. Login failed for user 'name\\owner'.

我在网上看到过类似的问题,似乎是数据库连接的问题?我尝试了多种“解决方案”,包括弄乱connectionString,但没有任何效果。

我认为系统想要做的是连接到位于单独项目的 App_Data 中的 .mdf。无论如何,这是我最初收到的 connectionString 代码:

add name="NameServiceContext"
connectionString="Server=tcp:qiu5vg5yhv.database.windows.net,1433;Database=MyDB;User ID=MYID;Password=MYPASS;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"
providerName="System.Data.SqlClient"

快速提问,tcp:...... 是什么东西?我假设它是以某种方式生成的,但是如何生成呢?

我已经尝试“解决”这个问题,结果是这样的:

add name="NameServiceContext" 
connectionString="data source=./SQLEXPRESS;AttachDbFilename=C:\Users\owner\Documents\MyERP\App_Data\MyDB.mdf;Integrated Security=True;Connect Timeout=30;" 
providerName="System.Data.SqlClient"

两种方法都给出相同的错误,我没有想法。我该如何解决这个问题?

另外,当我通过工具连接到数据库 > 连接到数据库 > MS SQL 数据库文件时,我会在 ./SQLEXPRESS 和 (LocalDB)\v11.0 两个数据源之间获得一个选项。我必须包括他们两个吗?如果有,怎么做?

【问题讨论】:

    标签: c# sql database connection-string first-chance-exception


    【解决方案1】:

    原始连接字符串指的是 Microsoft Azure 实例。 Azure 的典型连接字符串如下所示:

    Server=tcp:[serverName].database.windows.net;Database=myDataBase;User ID=[LoginForDb]@[serverName];Password=myPassword;Trusted_Connection=False;Encrypt=True;
    

    您的服务器名称是qiu5vg5yhv.database.windows.net。您的凭据很可能不正确。

    【讨论】:

      【解决方案2】:

      正如安德鲁所说,您似乎无权访问实际数据库。只需下载“SQL Server Management Studio”或“SQL Server Management Studio Express”(取决于您使用的数据库版本)并尝试连接。

      如果连接成功,请检查是否可以查询您项目的数据库。 如果连接不成功,请联系您的系统管理员以安排访问权限。

      如果您想了解有关连接字符串的更多信息或创建一个,请使用以下站点作为模板:http://www.connectionstrings.com/sql-server/

      您可以通过“SQL Server Management Studio”查看数据库的属性来获取必要的数据库详细信息(右键单击并选择属性 --> 查看连接属性)

      【讨论】:

        【解决方案3】:

        我遇到了同样的问题。关键步骤在这里。 我使用了 vs 2013 更新 4。 当您在 Azure 中配置 SQL 时,它会生成一个连接字符串。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-14
          • 1970-01-01
          • 1970-01-01
          • 2011-08-13
          相关资源
          最近更新 更多