MVC SqlServer数据库登录失败

时间:2017-12-18 17:18:06

标签: asp.net-mvc visual-studio

我目前在使用Microsoft Visual Studio 2015的MVC平台上,每当我尝试连接到数据库时,就会发生这种情况

PM> Scaffold-DbContext "Server=(localdb)\MSSQLLocalDB;Database=DB;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
  

System.Data.SqlClient.SqlException:无法打开数据库&#34; DB&#34;登录请求。登录失败。   用户&#39; PC&#39;登录失败。      在System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity标识,SqlConnectionString connectionOptions,Object providerInfo,Boolean redirectedUserInstance,SqlConnectionString userConnectionOptions,SessionData reconnectSessionData,Boolean applyTransientFaultHandling)      在System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions选项,DbConnectionPoolKey poolKey,Object poolGroupProviderInfo,DbConnectionPool池,DbConnection owningConnection,DbConnectionOptions userOptions)      在System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool池,DbConnection owningObject,DbConnectionOptions选项,DbConnectionPoolKey poolKey,DbConnectionOptions userOptions)      在System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject,DbConnectionOptions userOptions,DbConnectionInternal oldConnection)      在System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject,DbConnectionOptions userOptions,DbConnectionInternal oldConnection)      在System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,UInt32 waitForMultipleObjectsTimeout,Boolean allowCreate,Boolean onlyOneCheckConnection,DbConnectionOptions userOptions,DbConnectionInternal&amp; 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&amp; connection)      在System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection,DbConnectionFactory connectionFactory,TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource 1重试)      在System.Data.SqlClient.SqlConnection.Open()      在Microsoft.EntityFrameworkCore.Scaffolding.Internal.SqlServerDatabaseModelFactory.Create(String connectionString,TableSelectionSet tableSelectionSet)      在Microsoft.EntityFrameworkCore.Scaffolding.RelationalScaffoldingModelFactory.Create(String connectionString,TableSelectionSet tableSelectionSet)      在Microsoft.EntityFrameworkCore.Scaffolding.Internal.SqlServerScaffoldingModelFactory.Create(String connectionString,TableSelectionSet tableSelectionSet)      在Microsoft.EntityFrameworkCore.Scaffolding.Internal.ReverseEngineeringGenerator.GetMetadataModel(ReverseEngineeringConfiguration配置)      在Microsoft.EntityFrameworkCore.Scaffolding.Internal.ReverseEngineeringGenerator.GenerateAsync(ReverseEngineeringConfiguration配置,CancellationToken cancellationToken)      at Microsoft.EntityFrameworkCore.Design.Internal.DatabaseOperations.ScaffoldContextAsync(String provider,String connectionString,String outputDir,String dbContextClassName,IEnumerable 1 schemas, IEnumerable 1个表,Boolean useDataAnnotations,Boolean overwriteFiles,CancellationToken cancellationToken)      在Microsoft.EntityFrameworkCore.Design.OperationExecutor.d__22.MoveNext()      at System.Collections.Generic.EnumerableHelpers.ToArray [T](IEnumerable 1 source, Int32& length) at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable 1 source)      在System.Linq.Enumerable.ToArray [TSource](IEnumerable 1 source) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass4_0 1.b__0()      在Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)   ClientConnectionId:39d773a8-7fba-451B-b86b-d48b481cfe9a   错误号码:4060,状态:1,等级:11   无法打开数据库&#34; FacilityDB1&#34;登录请求。登录失败。   用户登录失败&#39; PC&#39;。**

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

您的问题可能已经发生,因为您可能没有名为PC的用户,或者没有为数据库中的用户PC分配访问权限

1)确保将用户添加到SQL Server数据库,并为用户提供对数据库的访问权限。

2)同时在IIS下的同一用户“PC机”下运行您的应用程序,并确保为其键入正确的密码。您可以从“应用程序池”更改它选择您的应用程序当前运行的池,并从“应用程序标识”中将您的用户更改为您之前创建的用户(步骤1)中的“PC”案“

如果它不起作用,请发表评论,我很乐意更新我的答案