2016-03-22 6 views
0

Ich habe zwei Connectionstrings zu zwei verschiedenen Datenbanken, aber auf demselben Datendienst. Die zweite Verbindungskette dient zum Laden der Produkte. So kann ich die lokale Seite ausführen: http://localhost/home-1. Aber wenn ich die Details eines Produkts zum Beispiel sehen möchten: http://localhost/catalog?GroupID=00015 ich diesen Fehler:doppelte Verbindungszeichenfolge in web.config

System.Data.EntityException: The underlying provider failed on Open. ---> System.Data.SqlClient.SqlException: Login failed for user 'VERPLOEGEN\Niels'. 
    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.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) 
    at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) 
    at System.Data.SqlClient.SqlConnection.Open() 
    at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure) 
    --- End of inner exception stack trace --- 
    at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure) 
    at System.Data.EntityClient.EntityConnection.Open() 
    at System.Data.Objects.ObjectContext.EnsureConnection() 
    at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) 
    at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable.GetEnumerator() 
    at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source) 
    at bdProductListNotification.bdProductListSetL3Notification.OnNotify(String notification, NotificationArgs args) 
    at Dynamicweb.Extensibility.NotificationManager.Notify(String notification, Object[] args) 
    at Dynamicweb.eCommerce.Frontend.Frontend.ListProducts(ProductCollection products, String groupsIdent, Boolean hasBeenSorted) 
    at Dynamicweb.eCommerce.Frontend.Frontend.List(String groups) 
    at Dynamicweb.eCommerce.Frontend.Frontend.EcomRender() 
    at Dynamicweb.eCommerce.Frontend.Frontend.GetContent() 
    at Dynamicweb.Frontend.Content.GetModule(DataRow& ParagraphRow) 

Die connectionstrrings sieht wie folgt aus:

<connectionStrings> 
    <add name="DataAccess_DynamicWebEntities" connectionString="metadata=res://*/DataAccess_DynamicWeb.csdl|res://*/DataAccess_DynamicWeb.ssdl|res://*/DataAccess_DynamicWeb.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=DESKTOP-UON3ACI\SQLEXPRESS;initial catalog=Dynamicweb-Verploegen-Test_new;user id='VERPLOEGEN\Niels';password='';multipleactiveresultsets=True;application name=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    <add name="NAV2DWservice.Properties.Settings.NAVconnectionString" connectionString="Data Source=DESKTOP-UON3ACI\SQLEXPRESS;Integrated Security=no;Initial catalog=Verploegen-Test;user=sa;password=8Bit235711" /> 
    <!-- <add connectionString="Data Source=DESKTOP-UON3ACI\SQLEXPRESS;Integrated Security=yes;Initial catalog=Verploegen-Test;user id=''" name="NAV2DWservice.Properties.Settings.NAVconnectionString" />--> 
    <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-localhost-20160318120328;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-localhost-20160318120328.mdf" /> 
    </connectionStrings> 

Danke

Antwort

0

hummm, die Sie benötigen um den spezifischen Verbindungszeichenfolgenwert in Ihrer CS-Datei zum Zeitpunkt des Aufrufs der Datenbankabfrage abzurufen, wenn Sie mit mehreren Verbindungszeichenfolgen arbeiten. Dies wird Ihnen helfen, das gewünschte Ergebnis aus der richtigen Datenbank zu bekommen.

untenstehenden Link finden Sie wissen mehr http://www.codeproject.com/Questions/542852/howplustoplususeplusmultipleplusconnectionstringpl

+0

Danke. Aber ich habe es in IIS. So berühre ich nicht die CS-Dateien. – InfinityGoesAround

+0

ok, sind Sie sicher, dass die Datenbankberechtigung, die Sie übergeben, korrekt ist? –

+0

Ja, weil ich die erste Verbindungszeichenfolge ausführen kann, weil das zum Erstellen der Site dient. – InfinityGoesAround