У нас есть два сервера, которые связаны между собой через балансировщик нагрузки.У нас есть база данных на другом сервере.Мы следуем той же архитектуре в среде Dev и QA.В настоящее время мы сталкиваемся с проблемой только в нашей производственной среде, где мы можем видеть исключение, связанное с SQL Server, в нашем журнале.
Мы используем ASP.NET MVC 5, SQL Server 2017.
При получении результатов произошла ошибка транспортного уровняс сервера.(провайдер: поставщик сеанса, ошибка: 19 - физическое соединение не используется). Исключение типа «System.Data.SqlClient.SqlException» возникло и было перехвачено.
исключение типа 'System.Data.SqlClient.SqlException 'произошло и было перехвачено.
Тип: System.Data.SqlClient.SqlException, System.Data, Версия = 4.0.0.0, Культура = нейтральный, PublicKeyToken = b77a5c561934e089
Сообщение: AОшибка транспортного уровня при получении результатов с сервера.(поставщик: поставщик сеанса, ошибка: 19 - физическое соединение не используется) Источник: .Net Справка по поставщику данных SqlClient Ссылка:
Ошибки:
System.Data.SqlClient.SqlErrorCollection ClientConnectionId: 8bc28cc4-cdd0-4641-ada1-af76e497c86e Класс: 20 Номер строки: 0 Номер: -1 Процедура: Состояние: 0 ErrorCode: -2146232060 Данные: System.Collections.ListDictionaryInternal TargetSite: Void OnError (System.Data.SqlClient.SqlException, Boolean, System.Action 1[System.Action]) HResult : -2146232060 Stack Trace :<br>
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception,
Boolean breakConnection, Action
1 wrapCloseInAction) в System.Data.SqlClient.SqlInternalConnection.OnError (исключение SqlException, логическое breakConnection, действие 1 wrapCloseInAction) at
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject
stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at
System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject
stateObj, UInt32 error) at
System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync()<br>
at System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket()<br>
at System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer() at
System.Data.SqlClient.TdsParserStateObject.TryReadByteArray(Byte[]
buff, Int32 offset, Int32 len, Int32& totalRead) at
System.Data.SqlClient.TdsParserStateObject.TryReadInt64(Int64& value)
at System.Data.SqlClient.TdsParser.TryReadSqlValueInternal(SqlBuffer
value, Byte tdsType, Int32 length, TdsParserStateObject stateObj)<br>
at System.Data.SqlClient.TdsParser.TryReadSqlValue(SqlBuffer value,
SqlMetaDataPriv md, Int32 length, TdsParserStateObject stateObj,
SqlCommandColumnEncryptionSetting columnEncryptionOverride, String
columnName) at
System.Data.SqlClient.SqlDataReader.TryReadColumnInternal(Int32 i,
Boolean readHeaderOnly) at
System.Data.SqlClient.SqlDataReader.TryReadColumn(Int32 i, Boolean
setTimeout, Boolean allowPartiallyReadColumn) at
System.Data.SqlClient.SqlDataReader.GetInt64(Int32 i) at
lambda_method(Closure , Shaper ) at
System.Data.Entity.Core.Common.Internal.Materialization.Coordinator
1.ReadNextElement (формирователь формирователя) в System.Data.Entity.Core.Common.InternalShaialization.1019 * 1.MoveNext () в коллекции System.Collections.Generic.List 1..ctor(IEnumerable
1)
в коллекции System.Linq.Enumerable.ToList [TSource] (IEnumerable 1 source) at
DTNA.UTP.DataAccessLayer.Repositories.TechPointRepository.GetTechPointDetails(Int32
userType, List
1, списки1 отделы, Int64 userFacility, DashBoardViewList selecteddashboard)
У нас естьне устанавливайте никаких явных значений для connectionPool и используйте значение по умолчанию, равное 100. В настоящее время к нашему приложению обращаются около 10000 пользователей.Может ли кто-нибудь помочь мне понять, почему эта проблема происходит?