2017-01-24 2 views
0

Ich versuche, eine alte Webanwendung von einem eigenständigen Windows 2008-Server auf einen 2012 R2-Server zu verschieben, der sich in einer Produktionsumgebung für einige andere Webanwendungen befindet.Verbindungszeichenfolgen beim Verbinden mit SQL Server einen Fehler erzeugen

Ich habe die SQL Server-Datenbank auf einen dedizierten SQL Server 2012 verschoben und einen Domänenbenutzer für die Verbindung und Verwaltung der App eingerichtet. Ich erhalte weiterhin den unten angegebenen Fehler, bin mir aber nicht sicher, warum der Benutzer keine Verbindung herstellen kann.

Dies sind die Verbindungszeichenfolgen mit sensiblen Informationen geändert:

<add name="CslaExConnection" 
    connectionString="Database=Databasev3;Server=Server\Instance,50000;User=Domain\User;[email protected];Enlist=false;" 
    providerName="System.Data.SqlClient" /> 
<add name="ConnectionString" 
    connectionString="Data Source=Server\Instance,50000;Initial Catalog=Databasev3;Persist Security Info=True;User ID=Domain\User;[email protected]" 
    providerName="System.Data.SqlClient" /> 
<add name="ConnectionString1" 
    connectionString="Data Source=Server\Instance,50000;Initial Catalog=Databasev3;Persist Security Info=True;User ID=Domain\User;[email protected]" 
    providerName="System.Data.SqlClient" /> 
<add name="Tools" 
    connectionString="Data Source=Server\Instance,50000;Initial Catalog=Databasev3;Persist Security Info=True;User ID=Domain\User;[email protected]" 
    providerName="System.Data.SqlClient"/> 
<add name="MySQLConnection" 
    connectionString="Server=127.0.0.1;Database=MySQLDB;Uid=root;[email protected];Port=3306;Allow Zero Datetime=True;" 
    providerName="MySql.Data.MySqlClient"/> 
<add name="CslaExConnectionSynergyContact" 
    connectionString="Database=goldmine;Server=Server\Instance,50000;User=Domain\User;[email protected];Enlist=false;" 
    providerName="System.Data.SqlClient" /> 
<add name="ConnectionString2" 
    connectionString="Data Source=Server\Instance,50000;Initial Catalog=Databasev3;Persist Security Info=True;User ID=Domain\User;[email protected]" 
    providerName="System.Data.SqlClient"/> 

Und das ist der Fehler, den ich bekommen, wenn ich in der Anwendung anmelden:

Server Error in '/md3' Application.

Login failed for user 'domain\user'.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Login failed for user 'domain\user'.

Source Error:

Line 45: PagingListFilter filter = new PagingListFilter(info);
Line 46: filter.PageSize = 0;
Line 47: GenericPagedList list = appUser.GetList(filter);
Line 48: DataTable dt = list.Results;
Line 49: if (dt.Rows.Count > 0)

Source File: d:\HTTP\wwwroot\synergytools\md3\loginold.aspx.cs Line: 47

Stack Trace:

[SqlException (0x80131904): Login failed for user 'domain\user'.] System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +428 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +65 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117 System.Data.SqlClient.SqlConnection.Open() +122 DFramework.Database.Query.ExecutePagedCommand() in D:\DCPL\Framework\DFramework\Database\Query.cs:508

[QueryException: SELECT COUNT(*) FROM (SELECT * FROM vwAppUserList 

WHERE OldUserId = @OldUserId 
) count__Query 
@OldUserId = 111 
] 
    DFramework.Database.Query.ExecutePagedCommand() in D:\DCPL\Framework\DFramework\Database\Query.cs:560 
    DFramework.Business.BusinessBase.ListData(Query query) in D:\DCPL\Framework\DFramework\Business\BusinessBase.cs:495 
    DFramework.Business.BusinessBase.List(Query query) in D:\DCPL\Framework\DFramework\Business\BusinessBase.cs:187 
    DFramework.UI.BusinessBase`1.GetList(PagingListFilter filter) in D:\DCPL\Framework\DFramework.UI\BusinessBase.cs:73 
    loginold.GetAppUserId(Int32 oldUserId) in d:\HTTP\wwwroot\synergytools\md3\loginold.aspx.cs:47 
    loginold.Page_Load(Object sender, EventArgs e) in d:\HTTP\wwwroot\synergytools\md3\loginold.aspx.cs:22 
    System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14 
    System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35 
    System.Web.UI.Control.OnLoad(EventArgs e) +99 
    System.Web.UI.Control.LoadRecursive() +50 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627 

Version Information: Microsoft .NET Framework Version:2.0.50727.8009; ASP.NET Version:2.0.50727.8015

+0

Hat der Benutzer die Berechtigung zum Herstellen einer Verbindung? Haben sie Zugriff auf die Datenbank? Haben Sie wirklich sieben Mal die gleiche Verbindungszeichenfolge in Ihrer Konfigurationsdatei oder dient dies lediglich dazu, die Details für die Veröffentlichung zu verschleiern? –

+0

Wenn Sie es anzeigen können, sollte das SQL Server-Fehlerprotokoll weitere Informationen darüber enthalten, warum die Anmeldung fehlgeschlagen ist (insbesondere der Nachrichtentext und die Nummer des Status in der Fehlermeldung). –

Antwort

0

KayZak,

Sie nicht ein Domäne-Benutzerkonto und das Kennwort in der Verbindungszeichenfolge angeben kann, weil sie es wie eine SQL Server authentifizierte Anmeldung zu behandeln gehen. Wenn Sie also das Domänenbenutzerkonto zum Ausführen der Anwendung verwenden, wird Ihre Verbindungszeichenfolge das folgende Format haben:

+0

Oh, gut. Wie würde ich sicherstellen, dass die Anwendung einen bestimmten Windows-Domänenbenutzer verwendet, wenn ich den Benutzer nicht anmelde? – KayZak

+0

@KayZak können Sie Testverbindungen mit .udl-Datei, aber wenn Sie "Windows-Authentifizierung" verwenden, dann wird der Benutzer, der die Anwendung ausführen. – M84

+0

M56 ist korrekt. Unter der Voraussetzung, dass Sie IIS verwenden, müssen Sie die Windows-Authentifizierung für die Anwendung aktivieren und festlegen, dass Ihre Anwendung als Domänenkonto ausgeführt wird. Stellen Sie sicher, dass das Domänenkonto auch in SQL Server hinzugefügt und der Datenbank für die Anwendung zugeordnet wird. – JAY

0

Sie können Überprüfen Sie die Server-Verbindung, können Sie eine leere Datei auf Ihrem Desktop erstellen und speichern Sie sie mit .udl e xtension. Öffnen Sie es jetzt, und Sie können Ihre Verbindung erstellen und testen.

Wenn Sie fertig sind, wenn Sie die .udl-Datei mit Editor öffnen, können Sie die Zeichenfolge Verbindung sehen. Denken Sie daran, "integrierte Sicherheit = SSPI" zu verwenden, wenn Sie ein Domänenkonto verwenden.

hier aus haben Sie eine Anleitung zum Erstellen und Testen Verbindungen mit UDL-Dateien: link .udl

Hope this Hilfe!

+0

Danke, ich werde das morgen versuchen! – KayZak

Verwandte Themen