Asp.net mvc 在笔记本电脑上托管查询比在服务器上执行查询更快
将ASP MVC应用程序发布到Windows Server 2012时,我遇到了一个奇怪的问题 该应用程序相当简单,在访问的大多数页面上,它将查询托管在服务器上的Access数据库 我注意到查询速度非常慢(通常需要7-10秒才能完成),如使用MiniProfiler运行应用程序时所示 作为一个简单的测试,我决定把这个应用程序放在我的Windows10笔记本电脑上,看看是否有区别,而且速度要快得多(大多数查询都在200ms以下) 这就是我迄今为止所尝试的:Asp.net mvc 在笔记本电脑上托管查询比在服务器上执行查询更快,asp.net-mvc,ms-access,iis,windows-server-2012,Asp.net Mvc,Ms Access,Iis,Windows Server 2012,将ASP MVC应用程序发布到Windows Server 2012时,我遇到了一个奇怪的问题 该应用程序相当简单,在访问的大多数页面上,它将查询托管在服务器上的Access数据库 我注意到查询速度非常慢(通常需要7-10秒才能完成),如使用MiniProfiler运行应用程序时所示 作为一个简单的测试,我决定把这个应用程序放在我的Windows10笔记本电脑上,看看是否有区别,而且速度要快得多(大多数查询都在200ms以下) 这就是我迄今为止所尝试的: 匹配高级应用程序池设置 匹配防火墙设置
- 匹配高级应用程序池设置
- 匹配防火墙设置
- 已启用链路本地多播名称解析(LLMNR)
- 确认已禁用ODBC跟踪(32和64)
- 已将Access Backoffice.mdb文件移动到服务器的C驱动器(与笔记本电脑上的相同)
- 确保web.config匹配(除了connectionString数据源)
- 将
和C:\inetpub\wwwroot\website
添加到防病毒扫描排除项中C:\Test\Database
- 在注册表中的
中,将Access Connectivity Engine
项值从0增加MaxBufferSize
- 处理器:英特尔酷睿i7-6700HQ处理器@2.60GHz
- 内存:16.0 GB
- 操作系统:Windows 10 x64
- 处理器:英特尔至强CPU E5-2603 v4@1.70GHz(2个处理器)
- 内存:32.0 GB
- 操作系统:Windows Server 2012 x64
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=W:\My Backoffice.mdb
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Test\My Backoffice.mdb
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\ServerName\W\My Backoffice.mdb
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\ServerName\C\Test\My Backoffice.mdb
将
16.0
和12.0
作为ACE.OLEDB
版本,其中W是一个本地服务器驱动器,用作域的网络共享。所有这些都给出了相同的结果。您好。是查询本身慢还是页面加载慢?服务器的统计数据是什么?像traffic等@NickPolideropoulos,我将执行查询的函数包装在MiniProfiler
中,以确认这是应用程序运行缓慢的地方。该服务器几乎只用于托管MS Access系统,在任何给定时间内,使用该服务器的用户不超过20人。当使用Access系统本身时,数据库运行良好,一点也不慢(用户的计算机上有一个访问服务器后端的前端accdb
文件),您能显示连接字符串吗?服务器地址部分。在某种程度上,我也遇到了同样的问题,因为我的连接字符串正在进行回调循环。(它从路由器出来,然后回到服务器)@NickPolideropoulos你知道有什么资源可以让我检查我的情况是否与你的类似吗?非常感谢您的帮助!从您提供的连接字符串来看,情况并非如此。因为我看到你提供了一个文件路径。在我的例子中,我的ip地址是数据源=10.10.23.551564
,在您的例子中,我会尝试执行一个简单的ADO.NET调用来检查连接。此外,我会尝试在调用database.Hello时监视服务器是否有任何峰值。是查询本身慢还是页面加载慢?服务器的统计数据是什么?像traffic等@NickPolideropoulos,我将执行查询的函数包装在MiniProfiler
中,以确认这是应用程序运行缓慢的地方。该服务器几乎只用于托管MS Access系统,在任何给定时间内,使用该服务器的用户不超过20人。当使用Access系统本身时,数据库运行良好,一点也不慢(用户的计算机上有一个访问服务器后端的前端accdb
文件),您能显示连接字符串吗?服务器地址部分。在某种程度上,我也遇到了同样的问题,因为我的连接字符串正在进行回调循环。(它从路由器出来,然后回到服务器)@NickPolideropoulos你知道有什么资源可以让我检查我的情况是否与你的类似吗?非常感谢您的帮助!从您提供的连接字符串来看,情况并非如此。因为我看到你提供了一个文件路径。在我的例子中,我的ip地址是数据源=10.10.23.551564
,在您的例子中,我会尝试执行一个简单的ADO.NET调用来检查连接。此外,我将尝试在调用数据库时监视服务器是否有任何峰值。