每个请求上的 51Degrees 重新加载会减慢 ASP.NET MVC 的速度

2024-03-10

添加 51Degrees 移动检测库后,我的 ASP.NET MVC 3 项目速度慢得像爬行一样。 51Degrees 日志文件定义为<log logFile="~/bin/App_Data/51Log.txt" logLevel="Info" /> in the <fiftyOne>部分显示设备库会针对每个请求重新加载,为每个请求添加 2-3 秒的延迟:

2011-10-22T14:17:34.9863774Z - 8436 - Info - Loaded 14691 devices using 11640 strings in 1882ms
2011-10-22T14:17:50.8442844Z - 8436 - Info - Loaded 14691 devices using 11640 strings in 1820ms
2011-10-22T14:17:57.2756523Z - 8436 - Info - Loaded 14691 devices using 11640 strings in 1928ms
2011-10-22T14:18:01.0488681Z - 8436 - Info - Loaded 14691 devices using 11640 strings in 1886ms
2011-10-22T14:18:04.6790757Z - 8436 - Info - Loaded 14691 devices using 11640 strings in 1862ms

此外,设置<fiftyOne> <log ... logLevel="Debug">在 web.config 中启动时抛出以下异常:

Storage scopes cannot be created when _AppStart is executing.

MVC 4 更新

如果我创建一个空白的 ASP.NET MVC 4 应用程序并添加最新的 51Degrees 2.0.3.2 NuGet 包,一切都会完美运行。正如预期的那样,日志反映二进制数据尽管有多个请求,但仅加载一次 (51Degrees.mobi-Lite-2012.01.05.dat)。

谨慎乐观的是,我将所有主要 MVC 3 项目代码复制到新的 ASP.NET MVC 4 项目中,并重新添加了最新的 51Degrees 包,但问题再次出现。一定是与我的某个软件包不兼容,或者是一个奇怪的设置。

日志显示正在为每个请求重新加载库:

2012-01-18T11:50:02.5026920Z - 11928 - Info - Creating provider from binary data file '~\App_Data\51Degrees.mobi-Lite-2012.01.05.dat'.
2012-01-18T11:50:02.8137098Z - 11928 - Info - Created provider from binary data file '~\App_Data\51Degrees.mobi-Lite-2012.01.05.dat'.
2012-01-18T11:50:07.7419917Z - 11928 - Info - Creating provider from binary data file '~\App_Data\51Degrees.mobi-Lite-2012.01.05.dat'.
2012-01-18T11:50:08.0170074Z - 11928 - Info - Created provider from binary data file '~\App_Data\51Degrees.mobi-Lite-2012.01.05.dat'.
2012-01-18T11:50:10.4191448Z - 11928 - Info - Creating provider from binary data file '~\App_Data\51Degrees.mobi-Lite-2012.01.05.dat'.
2012-01-18T11:50:10.7251623Z - 11928 - Info - Created provider from binary data file '~\App_Data\51Degrees.mobi-Lite-2012.01.05.dat'.

延迟远小于 XML 数据文件(300 毫秒与 3000 毫秒),但仍然造成明显的延迟。

这两个项目的 51Degrees.mobi.config 文件是相同的,在我的 web.config 中,这是我加载的模块:

<modules>
    <remove name="Detector"/>
    <add name="Detector" type="FiftyOne.Foundation.Mobile.Detection.DetectorModule, FiftyOne.Foundation"/>
</modules>

是什么导致 51Degrees 库在每次请求时重新加载?


发生这种情况是因为日志文件放置在 bin 文件夹中。每当 bin 文件夹中发生任何更改时,工作进程都会重新启动。将日志文件移至 ~/App_Data 文件夹,您会发现问题已解决。感谢您使用51度.mobi http://51degrees.mobi/Products/DeviceData.aspx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每个请求上的 51Degrees 重新加载会减慢 ASP.NET MVC 的速度 的相关文章

  • 字典 使用 Automapper 映射到对象

    我有一个像这样的课程 public User class public string Name get set public string Age get set 用像这样的字典 Dictionary
  • 如何跟踪长时间运行的 IIS 调用?

    我们的用户焦躁不安 他们不断抱怨一些模糊的 无法衡量的东西 特别是缓慢 但没有给出具体细节 这当然使得追踪变得非常困难 尽管如此 他们很可能是对的 有些服务器调用需要很长时间才能返回 所以我想在网站上放置某种嗅探器 我们在 IIS7 上使用
  • 持久身份验证令牌过期

    我有一个使用表单身份验证的 ASP NET MVC 应用程序 这是我创建身份验证令牌的代码行 FormsAuthentication SetAuthCookie username true 我的 web config 包含
  • IO 和 Android 之间发送数据? (字节数组)

    我正在 Android 中开发一个网络应用程序 它应该能够与 IO 应用程序进行通信 我正在使用 Appwarps 多人游戏后端 并且有一个发送和接收数据的功能 该函数接受一个字节数组 所以最初我认为我可以将一个 消息 对象序列化为一个字节
  • 如何在 MVC4 的 UserProfile 中创建自定义附加字段

    我遇到了新的 ASP MVC 4 功能 它附带了新的成员资格数据库模式和新的初始化 在 mvc 3 和旧版本中 开发人员能够使用 web config 中的规范创建自定义用户配置文件字段 但现在我面临默认 mvc 4 项目中过滤器命名空间中
  • 如何设置 web.config 文件以显示完整的错误消息

    我在 Windows Azure 上部署了 MVC 3 应用程序 但现在当我通过请求时staging url它告诉我 很抱歉 在执行您的要求时发生了一个错误 现在我想查看完整的错误消息 默认情况下由于某些安全原因它会隐藏该消息 我知道我们可
  • 为什么 DropDownListFor 无法识别编辑器模板中的选定值?

    我有以下名为 DropDown cshtml 的编辑器模板 这list部分工作正常 模板使用了一些我所做的巫毒来获得所需的SelectList from ViewData 控制器将视图模型中的所有选择列表放入ViewData 并且列表方面没
  • ASP.Net MVC 4 通用主要难点

    我正在开发一个ASP NET MVC 4Web应用程序 以前我的 MVC 应用程序是使用MVC 3和这个新的MVC 4我刚刚复制 重复使用了我的应用程序认证和授权码从以前的应用程序 当用户登录我的网站时 我会执行以下操作 账户控制器 pub
  • ASP.Net MVC 3,复杂对象和延迟加载

    首先 我是 ASP Net MVC 3 的新手 而且我也在使用 EF 4 1 我有一个复杂的对象 类似于包含类别对象的产品对象 所以我们有 Product CategoryId Product Category 和一些额外的属性 我还有一个
  • Ajax.BeginForm 可以重定向到新页面并传递路由值

    此链接显示如何重定向 Ajax BeginForm 但不显示如何将路由值传递到新视图 可以重定向到新页面的 Ajax BeginForm https stackoverflow com questions 9391201 ajax begi
  • MVC 4 授权属性无法识别 ASP.Net 3.5 中的表单身份验证

    我正在为之前创建过 ASP Net 3 5 VS 2008 应用程序的客户端创建一个新的 MVC 4 应用程序 我创建了一个网关应用程序来启动其他几个 ASP Net 3 5 Web 应用程序 网关应用程序处理登录和表单身份验证票证 只要所
  • 在 ASP.NET MVC 4 中使用 jQuery Mobile 1.3 面板时的双滚动条

    我无法弄清楚这一点 将以下代码放入布局页面并在浏览器中查看后 我将显示 2 个垂直滚动条 div div 遇到了类似的问题 并注意到只有在使用我的自定义主题时才出现这种问题 我以错误的顺序将自定义主题添加到页面 这导致了问题 正确的顺序是
  • SignalR 更新无法在 Chrome 上正常运行

    我创建了一个带有 SignalR 通知的 ASP MVC 4 应用程序 我在本地以调试模式运行它 并通过 IIS 发布在服务器上运行它 使用 Internet Explorer 11 时 这基本上可以正常工作 稍后解释 HTML1300 N
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 覆盖 jQuery 验证 MVC4 中的默认设置

    要覆盖查询验证插件 请在文件 http docs jquery com Plugins Validation validate toptions 推荐的方式是 selector validate invalidHandler functio
  • Google Drive Realtime API 离线和同步支持

    我想构建一个移动 Web 应用程序 为协作持久数据提供透明的离线和同步支持 我正在考虑使用 Google Drive Realtime API 作为后端 API 对离线和同步的支持程度如何 它只是通过包含的 API 脚本 自动 工作 还是应
  • ASP.net C#,采用不同参数类型的同名方法[重复]

    这个问题在这里已经有答案了 可能的重复 可以在 ASP Net MVC 中重载控制器方法吗 https stackoverflow com questions 436866 can you overload controller metho
  • 如何使用 Jquery mobile 进行移动分析

    我正在寻找一个好的解决方案来为 Jquery mobile 进行移动分析 我确实检查了这个问题 Flurry Analytics 与移动平台上的 Google Analytics https stackoverflow com questi
  • 使用包含和不包含的 Linq 查询

    我正在尝试从数据库中获取记录 它应该 getrecords 其中名称包含 searchKey 并且名称不在 exceptTerms 数组中 并以逗号分隔 我怎样才能在 Linq 中做到这一点 Rows from u in DB Client
  • Razor 视图类型不继承自“System.Web.WebPages.WebPage”

    我在配置 ASP NET MVC 应用程序时遇到问题 HttpException 0x80004005 Type ASP Page Currency Index cshtml does not inherit from System Web

随机推荐