微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何建立与远程数据库sql server的连接?

如何解决如何建立与远程数据库sql server的连接?

当尝试使用 enable-migrations 连接到远程数据库时,我得到一个错误,该错误坚持要求检查连接字符串,我要做的就是将我的上下文连接到远程数据库以提供并用“迁移”映射“用户”类, 这是连接字符串:

<add name="TransformerANDConnectDB" connectionString="data source=REMOTE_SERVER_xx ;initial catalog=TransformerANDConnectDB;user id=xxx ;password=xxx ;Integrated Security=True ;MultipleActiveResultSets=True;"  providerName="System.Data.sqlClient" />

否则,我向您介绍启用迁移后发生的错误

 ---> System.Data.sqlClient.sqlException: Échec de l'ouverture de session de l'utilisateur 'ADSLOCAL\G558253'.
  à  System.Data.sqlClient.sqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity,sqlConnectionString connectionoptions,sqlCredential credential,Object providerInfo,String newPassword,securestring newSecurePassword,Boolean redirectedUserInstance,sqlConnectionString 

访问数据库时发生错误。这通常意味着与数据库的连接失败。检查连接字符串是否正确,是否使用了适当的DbContext构造函数来指定它或在应用程序的配置文件中找到它。有关DbContext和连接的信息,请参见http://go.microsoft.com/fwlink/?LinkId=386386。有关失败的详细信息,请参见内部异常。

这是我的上下文文件

public class TransformerConnectMEContext  :DbContext 
{
    public TransformerConnectMEContext()
            : base("Name=TransformerANDConnectDB")
    {
        Database.Setinitializer<TransformerConnectMEContext>(new TransformerConnectMEContextinitializer());
    }
    public DbSet<User> Users { get; set; }
}

内部例外:

System.Data.Entity.Core.ProviderIncompatibleException: The provider did not return a ProviderManifestToken string. ---> System.Data.sqlClient.sqlException: Échec de l'ouverture de session de l'utilisateur 'ADSLOCAL\XXXX'.
   à System.Data.sqlClient.sqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity,sqlConnectionString userConnectionoptions,SessionData reconnectSessionData,DbConnectionPool pool,String accesstoken,Boolean applyTransientFaultHandling,sqlAuthenticationProviderManager sqlAuthProviderManager)
   à System.Data.sqlClient.sqlConnectionFactory.CreateConnection(DbConnectionoptions options,DbConnectionPoolKey poolKey,Object poolGroupProviderInfo,DbConnection owningConnection,DbConnectionoptions userOptions)
   à System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool,DbConnection owningObject,DbConnectionoptions options,DbConnectionoptions userOptions)
   à System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject,DbConnectionoptions userOptions,DbConnectionInternal oldConnection)
   à System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject,DbConnectionInternal oldConnection)
   à System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,UInt32 waitForMultipleObjectsTimeout,Boolean allowCreate,Boolean onlyOneCheckConnection,DbConnectionInternal& connection)
   à System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,taskcompletionsource 1 retry,DbConnectionInternal& connection)
   à System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection,DbConnectionInternal oldConnection,DbConnectionInternal& connection)
   à System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection,DbConnectionFactory connectionFactory,taskcompletionsource`1 retry,DbConnectionoptions userOptions)
   à System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection,DbConnectionoptions userOptions)
   à System.Data.sqlClient.sqlConnection.TryOpenInner(taskcompletionsource 1 retry)
   à System.Data.sqlClient.sqlConnection.TryOpen(taskcompletionsource 1 retry)
   à System.Data.sqlClient.sqlConnection.open()
   à System.Data.Entity.Infrastructure.Interception.DbConnectiondispatcher.<Open>b__38(DbConnection t,DbConnectionInterceptionContext c)
   à System.Data.Entity.Infrastructure.Interception.Internaldispatcher 1.dispatch[TTarget,TInterceptionContext](TTarget target,Action 2 operation,TInterceptionContext interceptionContext,Action 3 executing,Action 3 executed)
   à System.Data.Entity.Infrastructure.Interception.DbConnectiondispatcher.Open(DbConnection connection,DbInterceptionContext interceptionContext)
   à System.Data.Entity.sqlServer.sqlProviderServices.<>c__displayClass31.<UsingConnection>b__2f()
   à System.Data.Entity.sqlServer.DefaultsqlExecutionStrategy.<>c__displayClass1.<Execute>b__0()
   à System.Data.Entity.sqlServer.DefaultsqlExecutionStrategy.Execute[TResult](Func 1 operation)
   à System.Data.Entity.sqlServer.DefaultsqlExecutionStrategy.Execute(Action operation)
   à System.Data.Entity.sqlServer.sqlProviderServices.UsingConnection(DbConnection sqlConnection,Action 1 act)
   à System.Data.Entity.sqlServer.sqlProviderServices.UsingMasterConnection(DbConnection sqlConnection,Action 1 act)
   à System.Data.Entity.sqlServer.sqlProviderServices.GetDbProviderManifestToken(DbConnection connection)
   à System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection)
   --- Fin de la trace de la pile d'exception interne ---
   à System.Data.Entity.Core.Common.DbProviderServices.GetProviderManifestToken(DbConnection connection)
   à System.Data.Entity.Utilities.DbProviderServicesExtensions.GetProviderManifestTokenChecked(DbProviderServices providerServices,DbConnection connection)
   --- Fin de la trace de la pile d'exception interne ---
   à System.Data.Entity.Utilities.DbProviderServicesExtensions.GetProviderManifestTokenChecked(DbProviderServices providerServices,DbConnection connection)
   à System.Data.Entity.Infrastructure.DefaultManifestTokenResolver.<>c__displayClass1.<ResolveManifestToken>b__0(Tuple 3 k)
   à System.Collections.Concurrent.ConcurrentDictionary 2.GetorAdd(TKey key,Func 2 valueFactory)
   à System.Data.Entity.Infrastructure.DefaultManifestTokenResolver.ResolveManifestToken(DbConnection connection)`
  

解决方法

在连接字符串中,将Integrated Security设置为false。

将Integrated Security设置为false时,将在连接中指定用户ID和密码。设置为true时,将使用当前的Windows帐户凭据进行身份验证

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。