Веб-сервер IIS зависает после открытия нескольких вкладок с веб-сайта
Мой веб-сервер IIS зависает, когда я открываю несколько вкладок в Firefox/ Chrome/ и т.д. Я не уверен, что это такое. Я думаю, что у меня проблема с моим SQL Server, хотя я использую javascript для получения прямых данных непосредственно из базы данных. Мой Javascript заполняет диапазон значений. Значение загружается из внешнего файла asp.net. Файл asp загружает vaule из моей базы данных sql.
Замораживание выглядит так: когда открыта одна вкладка, я могу использовать эту страницу так, как мне хочется. Я могу выбирать данные из таблицы, открывать данные и читать жизненную ценность (или лучше, несколько живых значений).
Когда я открываю другую вкладку, страница начинает загружаться очень долго. иногда страница может быть загружена, но через несколько секунд происходит сбой другой страницы с текущими данными, и после этого ничего не может быть загружено снова. тогда мне нужно перезапустить полный сервис IIS.
Я проверил каждый SQL-запрос, чтобы открыть соединение, использовать читатель, закрыть читатель и снова закрыть соединение (Проверьте код).
Я запрограммировал обходной путь, который больше не работает, я не знаю почему. каждые 5 секунд он перезапускается через пакетный веб-сайт (не служба, хотя она занимает много времени, и страницы перестают подключаться).
Сейчас я использую jquery для live-данных, хотя чистый js работал неправильно.
Я переустановил службу iis со всеми компонентами.
Я перенастроил веб-сайт, который работает на моем IIS.
Это пример запроса-ответа из файла asp, который будет загружен из js для live-данных.
//Wir benötigen die Artikelnummer
if (Request.QueryString["artikelnr"] != null)
{
DBMaster dbm = new DBMaster();
string return_text = "X2";
string query = "SELECT * FROM artikel WHERE artikelnr LIKE '" + Request.QueryString["artikelnr"].ToString() + "' AND beendet LIKE '0'";
try
{
SqlDataReader artikel = dbm.get_data(query);
//Zähle die Zahlen hoch für Sollmenge
while (artikel.Read())
{
sollmenge += Int32.Parse(artikel["sollmenge"].ToString());
}
return_text = sollmenge.ToString() + " St.";
artikel.Close();
//Datenbankverbindung schließen
dbm.close_connect();
}
catch (Exception ex)
{
//Wir geben eine Leere antwort, falls wir keine Daten gefunden haben.
return_text = "Failed: X1";
}
lit_api_answer.Text = return_text;
}
Это JS для живых данных
<script>
//Globale Funktion ohne angabe von IDs oder Stationsnummern
function get_global_data(type, gdata) { $(gdata).load('api_call.aspx?type=' + type, function () { }); }
setInterval(function () {
get_global_data('get_nothalt', '#gnothalt')
}, 2000);
</script>
промежуток, который будет заполнен живыми данными
<span id="gnothalt">
</span>
Я надеюсь, что это только код. но если вам нравится, вы можете предоставить другую информацию, например - ОС является модифицированной версией от beckhoff. Я не вижу, как работает сервис.