Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 在笔记本电脑上托管查询比在服务器上执行查询更快_Asp.net Mvc_Ms Access_Iis_Windows Server 2012 - Fatal编程技术网

Asp.net mvc 在笔记本电脑上托管查询比在服务器上执行查询更快

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以下) 这就是我迄今为止所尝试的: 匹配高级应用程序池设置 匹配防火墙设置

将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
    中,将
    MaxBufferSize
    项值从0增加
是否有人知道我可以尝试调试此问题的方法,或者任何可能的解决方案

注释

测试时,我的笔记本电脑和服务器都在同一个网络上,我通过ipad访问应用程序

从服务器本身(url=10.0.0.1或localhost)上的浏览器使用应用程序时,我也遇到了同样的缓慢

当我从服务器上的控制台应用程序执行完全相同的查询代码时,它运行速度快(与笔记本电脑相当)。我仅通过asp应用程序遇到此问题

笔记本电脑详细信息:
  • 处理器:英特尔酷睿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调用来检查连接。此外,我将尝试在调用数据库时监视服务器是否有任何峰值。