Ich schreibe eine Anwendung in ASP.NET, wo ich häufige SQL-Verbindungen und häufig ich meine alle 2 Sekunden. Es ist eine Echtzeit-Datenanwendung. BD Engine ist SQL SERVER 2008R2.Understanding ASP.NET ConnectionPool und String-Sicherheit
Jeder Benutzer verbindet sich mit mindestens zwei verschiedenen Datenbanken. Mein Problem ist, ich kann immer noch nicht verstehen, die Verbindung Pooling und wie viel von ihnen Verbindungen habe ich nach einigen Abfragen.
ich die folgenden Methoden implementiert:
private static string composeConnectionString(string connectTo)
{
StringBuilder sqlSB = new StringBuilder("Data Source=");
sqlSB.Append(dataSource);
sqlSB.Append(";Min Pool Size=");
sqlSB.Append(minPoolSize);
sqlSB.Append(";Max Pool Size=");
sqlSB.Append(maxPoolSize);
sqlSB.Append(";Connection Timeout=");
sqlSB.Append(connectionTimeout);
sqlSB.Append(";Initial Catalog=");
sqlSB.Append(connectTo);
sqlSB.Append(";Integrated Security=");
sqlSB.Append(integratesSecurity);
sqlSB.Append(";User Id=");
sqlSB.Append(userId);
sqlSB.Append(";Password=");
sqlSB.Append(password);
sqlSB.Append(";MultipleActiveResultSets=");
sqlSB.Append(multipleActiveResultSets);
return sqlSB.ToString();
}
public static SqlConnection getConnection(string connectTo)
{
SqlConnection connection = null;
string connectionString = composeConnectionString(connectTo);
try
{
connection = new SqlConnection(connectionString);
}
catch (Exception ex)
{
if (connection != null)
connection = null;
ExceptionLogger.LogException(ex, connectionString);
}
return connection;
}
An diesem Punkt beginne ich für jeden SQLConnection- wenn neue Connection ist creater in Frage suche ich? Wie sicher ist die Verbindungszeichenfolge?
Fragen Sie mich nach Updates, wenn etwas verschwommen erscheint.
Danke euch allen.
Warum erstellen Sie dynamisch die Verbindungszeichenfolge? Werden diese Parameter während der Lebensdauer Ihrer Anwendung geändert? – Steve
Ich bin nicht sicher, dass ich folge, aber wenn Sie den SQL Server-Verbindungspool meinen, dann wird kein neuer Pool für jede Verbindung erstellt, sondern jede Verbindung wird aus dem Verbindungspool (vereinfacht) abgerufen. Wie für "sicher", dann kommt es darauf an, was du damit machst. Wenn Sie meinen, Sie können in einer Verbindung Informationen über eine andere Verbindung erhalten, dann nein.Wenn Sie jedoch eine Verbindungszeichenfolge anderen Teilen Ihrer Anwendung zur Verfügung stellen, liegt es an Ihnen, diese sicher zu machen. –
@Steve Ich baue es dynamisch, weil ich je nach Benutzer eine Verbindung zu verschiedenen DBs herstellen. Ich weiß nicht, zu welchen DBs ich mich verbinden werde, bis ich ihre Konfigurationsdatei gelesen habe. –