【问题标题】:Asp.net 5 and EF7 existing Azure database scaffoldingAsp.net 5 和 EF7 现有 Azure 数据库脚手架
【发布时间】:2016-02-16 03:49:00
【问题描述】:

我很困惑,我想使用我现有的 azure 数据库并将其搭建起来,以便为我的网站查询我的表。每次我运行这个 dnx 命令时,它都会无法登录。我已经仔细检查了我的密码和用户名。我只是希望能够从我现有的数据库中生成代码来进行查询。

这是我根据文档使用的命令。

C:\Projects\WebApplication>dnx ef dbcontext scaffold "数据源 = tcp:random.database.windows.net,1433;数据库 = MyDatabase;用户 ID = Username@random;密码 = {my_password};加密 = True ; TrustServerCertificate = True;" EntityFramework.MicrosoftSqlServer

给出的错误,我猜它与我的 sql 连接字符串有关,但我不知道是什么。

System.Data.SqlClient.SqlException (0x80131904): Login failed for user 'Username'.
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry)
   at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
   at System.Data.SqlClient.SqlConnection.Open()
   at Microsoft.Data.Entity.Scaffolding.SqlServerDatabaseModelFactory.Create(String connectionString, TableSelectionSet tableSelectionSet)
   at Microsoft.Data.Entity.Scaffolding.RelationalScaffoldingModelFactory.Create(String connectionString, TableSelectionSet tableSelectionSet)
   at Microsoft.Data.Entity.Scaffolding.SqlServerScaffoldingModelFactory.Create(String connectionString, TableSelectionSet tableSelectionSet)
   at Microsoft.Data.Entity.Scaffolding.Internal.ReverseEngineeringGenerator.GetMetadataModel(ReverseEngineeringConfiguration configuration)
   at Microsoft.Data.Entity.Scaffolding.Internal.ReverseEngineeringGenerator.GenerateAsync(ReverseEngineeringConfiguration configuration, CancellationToken cancellationToken)
   at Microsoft.Data.Entity.Design.DatabaseOperations.ReverseEngineerAsync(String provider, String connectionString, String outputDir, String dbContextClassName, List`1 schemas, List`1 tables, Boolean useDataAnnotations, CancellationToken cancellationToken)
   at Microsoft.Data.Entity.Commands.Program.Executor.<>c__DisplayClass11_0.<<ReverseEngineerAsync>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Data.Entity.Commands.Program.Executor.<ExecuteAsync>d__13.MoveNext()
ClientConnectionId: clientid
Error Number:18456,State:1,Class:14
Login failed for user 'Username'.

【问题讨论】:

  • 在问题本身中发布相关错误,而不是图片。堆栈跟踪中的错误消息和相关行应该足够了。
  • 谢谢,从现在开始我会这样做的。我发现了我的问题。 . .我只是个白痴。我在连接字符串中的 myPassword 周围留下了括号。 . .谢谢梅森,来自梅森的声音听起来很奇怪;)。

标签: c# asp.net entity-framework azure


【解决方案1】:

无意中忘记删除 SQL 连接字符串中密码周围的大括号 {}。

错误

C:\Projects\WebApplication>dnx ef dbcontext scaffold "Data Source = tcp:random.database.windows.net,1433; Database = MyDatabase; User ID = Username@random; Password = {my_password}; Encrypt = True; TrustServerCertificate = True;" EntityFramework.MicrosoftSqlServer

C:\Projects\WebApplication>dnx ef dbcontext scaffold "Data Source = tcp:random.database.windows.net,1433; Database = MyDatabase; User ID = Username@random; Password = my_password; Encrypt = True; TrustServerCertificate = True;" EntityFramework.MicrosoftSqlServer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多