asp.net-mvc – MVC中的SignalR偏移Application Insights
发布时间:2020-12-16 06:55:27 所属栏目:asp.Net 来源:网络整理
导读:我们刚开始在MVC应用程序中使用SignalR,现在由于平均响应时间很长,我们得到了一堆警报.我怀疑这会误导,因为应用程序没有遇到性能下降. SignalR似乎使用此URL建立连接.这个url不是项目的控制器/动作,只是js文件中内置的SignalR代码. jquery.signalR-2.2.1.js
我们刚开始在MVC应用程序中使用SignalR,现在由于平均响应时间很长,我们得到了一堆警报.我怀疑这会误导,因为应用程序没有遇到性能下降. SignalR似乎使用此URL建立连接.这个url不是项目的控制器/动作,只是js文件中内置的SignalR代码.
jquery.signalR-2.2.1.js是该文件.我怀疑它只是在他们在这个页面上时打开websocket连接并且它正在扭曲我们的数字.这准确吗?如果是这样,有没有办法从应用程序见解中过滤掉它?
这是柜台.这是预期的行为吗? 这是signalR jquery代码,它构建了它的url: // 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; }, 解决方法
我按照
https://docs.microsoft.com/en-us/azure/application-insights/app-insights-api-filtering-sampling上的说明修复了这个问题:
>将ApplicationInsights Nuget包更新到2.0.0或更高版本. public class UnwantedTelemetryFilter : ITelemetryProcessor { private ITelemetryProcessor Next { get; set; } public UnwantedTelemetryFilter(ITelemetryProcessor next) { this.Next = next; } public void Process(ITelemetry item) { var request = item as RequestTelemetry; if (request != null && request.Name != null) if (request.Name.Contains("signalr")) return; // Send everything else: this.Next.Process(item); } } >将处理器添加到Global.asax.cs中的Application_Start(): var builder = TelemetryConfiguration.Active.TelemetryProcessorChainBuilder; builder.Use((next) => new UnwantedTelemetryFilter(next)); builder.Build(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 垃圾收集 – ASP.NET核心Web应用程序(.NET Framework)中app
- ASP.NET中TextBox控件设立ReadOnly="true"后台取不
- 你可以在ASP.NET MVC的页面上有两个表单吗?
- 如何在ASP.NET网站中解决长时间的Glimpse线路时间问题?
- asp-classic – 经典Asp页面中的Url重定向
- 用asp.net core 2.0 + EFCore.Sqlite做个小网站
- 如何将当前的asp.net usercontrols类名转换为c#上的字符串?
- asp.net-mvc – 在哪里可以找到mvc 2的windsor控制器工厂?
- asp.net – 防止意外双击按钮
- asp.net-mvc – 实体框架核心可空外键
推荐文章
站长推荐
- asp.net-mvc – Elmah.Mvc 2.0自定义身份验证
- asp.net-mvc – 在MVC/ASP.NET MVC中正确使用Mod
- asp.net – 在乌龟SVN操作后丢失的IIS_IUSRS权限
- asp.net – MVC标识||禁用所有cookie并“记住我”
- 我的ASP.NET Web应用程序无法“找到”App_Code文
- asp.net – 在新的VS 2013 Identity UserManager
- mvc项目架构分享系列之架构搭建之Infrastructure
- asp.net-mvc – ViewModel中的ASP.NET MVC Selec
- asp.net-mvc – 如何对我的ASP.NET MVC网站进行性
- 如何在ASP.NET Core中组合基于模板和属性的路由?
热点阅读