質問: new SqlCommand("SELECT * FROM DatabaseVersion", conn); command.ExecuteNonQuery(); connections.Add(conn); } } } ```
回答: SqlClientは `Connection Reset` フラグを検証します(ブール値に変換可能である必要があります)。しかし、.NET 3.5 SP1以降、この値は**無視されます**。 さらに、 SqlConnectionStringBuilder.ConnectionResetプロパティ .NET 3.5 SP1では廃止されました。 その理由は、 `Connection Reset = false` を設定することは大きなセキュリティ上の問題であるということです。オープンされた対称キー、一時キー、または偽装コンテキストなどの機密要素が関連付けられたセッションを再利用できます。さらに、 `ChangeDatabase` を別のデータベースに実行していた可能性があります。そのため、再度開いたときに「間違った」データベースに接続されます。 `Connection Reset = false` を設定する唯一の利点は、往復を避けるためにSQL Server 7.0のパフォーマンスが向上することです。 `Connection Reset` is documented in the .NET 3.0 docs. I assume that the reason it was removed from the 3.5 SP1 docs and later is because it now does nothing.