Я использую классический ASP / SQL Server 2008 R2 / Windows Server 2012 R2 / IIS 8 уже около 10-15 лет;нет проблем.Но я пытаюсь заставить эти же сценарии работать на новом компьютере с Windows Server 2016 (IIS 10) и SQL Server 2017, и у меня возникают проблемы с подключением к базам данных.(И переписать их в ASP.NET сейчас не вариант).
Например, я создам соединение с базой данных:
set conn = server.CreateObject("ADODB.Connection")
conn.ConnectionTimeout=120
conn.Open("Provider=sqloledb;Data Source=(local);Initial Catalog=myDatabase;Integrated Security=SSPI")
Первая проблема, этодля создания соединения требуется две секунды (ровно две секунды для каждого соединения).И хотя предполагается, что соединение остается открытым, последующие соединения (та же самая база данных; та же строка соединения) на этой странице или другой странице занимают ровно две секунды (даже если я установил ConnectionTimeout в 120 секунд).
Вторая проблема (более серьезная), затем требуется две секунды (почти ровно две секунды) для выполнения любой операции с этим соединением, даже если это всего одна строка, например:
sql = "update myTable set zipCode = 91839 where ID = 12345"
conn.execute(sql)
И затем, если я это сделаюдругое обновление (например) только для одной строки занимает еще две секунды (почти ровно две секунды):
sql = "update myTable set zipCode = 02930 where ID = 67890"
conn.execute(sql)
При предыдущей настройке (SQL Server 2008 R2 / Windows Server 2012 R2 / IIS 8)для создания соединения потребовалось несколько миллисекунд, а затем простые обновления, подобные описанным выше, заняли бы 1-2 мс.Но теперь каждое соединение и каждая операция в этом соединении занимает две секунды + количество времени, которое оно должно занять (например, 2 мс).
Я предполагаю, что каким-то образом настройки по умолчанию для соединений SQL Server в IIS 10изменились, и это то, что вызывает проблему, но я не уверен.Кстати, я использую учетную запись IUSR по умолчанию в IIS для подключения к SQL Server (как в старой настройке, так и сейчас).