Wir haben gerade angefangen, SignalR in einer MVC-Anwendung zu verwenden und jetzt bekommen wir aufgrund der hohen durchschnittlichen Antwortzeit eine Reihe von Alarmen. Ich vermute, dass dies irreführend ist, da die Anwendung keine Leistungseinbußen erfährt. Es scheint, dass SignalR diese URL verwendet, um eine Verbindung herzustellen. Diese URL ist kein Controller/Aktion des Projekts und nur der eingebaute SignalR-Code in der js-Datei. jquery.signalR-2.2.1.js ist die Datei. Ich vermute, dass es die Websocket-Verbindung gerade offen lässt, während sie auf dieser Seite sind und es unsere Zahlen verdreht. Ist das genau? Wenn ja, gibt es eine Möglichkeit, sie aus den Anwendungsinformationen zu filtern?SignalR in MVC skewing Application Insights
Hier ist der Zähler. Ist das das erwartete Verhalten?
Hier ist der Code signalR jquery ist, wo es es ist url baut:
// BUG #2953: The url needs to be same otherwise it will cause a memory leak
getUrl: function (connection, transport, reconnecting, poll, ajaxPost) {
/// <summary>Gets the url for making a GET based connect request</summary>
var baseUrl = transport === "webSockets" ? "" : connection.baseUrl,
url = baseUrl + connection.appRelativeUrl,
qs = "transport=" + transport;
if (!ajaxPost && connection.groupsToken) {
qs += "&groupsToken=" + window.encodeURIComponent(connection.groupsToken);
}
if (!reconnecting) {
url += "/connect";
} else {
if (poll) {
// longPolling transport specific
url += "/poll";
} else {
url += "/reconnect";
}
if (!ajaxPost && connection.messageId) {
qs += "&messageId=" + window.encodeURIComponent(connection.messageId);
}
}
url += "?" + qs;
url = transportLogic.prepareQueryString(connection, url);
if (!ajaxPost) {
url += "&tid=" + Math.floor(Math.random() * 11);
}
return url;
},
Dies sein kann oder nicht Wenn Sie 3 oder mehr Fenster öffnen, in denen Ihr SignalR eine Verbindung herstellt, wird es hängen bleiben, bis ein Socket verfügbar ist (IE. Sie schließen eines Ihrer mehreren Fenster tha t sind verbunden), dann wird die Seite geladen. Ich frage mich, ob dies der Grund für die lange Antwortzeit ist? – Luke
@Luke danke für die Rückmeldung. Ich werde mit den Nutzern nachgehen. Ich glaube nicht, dass dies ihr Verhalten ist, sondern werde es überprüfen. –