当我在 firefox/chrome/etc 上打开多个选项卡时,我的 IIS 网络服务器冻结。我不确定,它是什么。我认为我的 SQL Server 有问题,尽管我使用 javascript 直接从数据库获取实时数据。我的 Javascript 填充了一个值。该值是从外部 asp.net 文件加载的。asp 文件从我的 sql 数据库中加载值。
冻结看起来像这样:当打开一个选项卡时,我可以随意使用该页面。我可以从表中选择数据,打开数据并读取一个生命值 8 或更好,多个活值)。
当我打开另一个选项卡时,页面开始加载很长时间。有时可以加载页面,但片刻之后另一个页面与实时数据一起崩溃,之后无法再次加载任何内容。然后我需要重新启动完整的 iis 服务。
我检查了每个 sql 查询,打开连接,使用阅读器,关闭阅读器并再次关闭连接(检查代码)。
我编写了一个变通方法,它不再工作了,我不知道为什么。它每 5 秒通过批处理重新启动网站(不是服务,尽管它需要很长时间并且页面停止连接)。
我现在将 jquery 用于实时数据,尽管纯 js 无法正常工作。
我重新安装了 iis 服务,以及所有组件。
我重新配置了在我的 IIS 上运行的网站。
这是来自 asp 文件的示例请求答案,将从 js 加载实时数据
//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 的修改版本。我看不到服务正在运行。