我创建了一个从 SQL 服务器检索大量数据的 Web 应用程序 (ASP.NET Core MVC)。该应用程序安装在具有 IIS 6.2 和 Windows Server 2012R2 的服务器 (A) 中,而 SQL 服务器安装在具有 MS SQL Server 2014 和 Windows Server 2012R2 的另一台服务器 (B) 中。
在服务器A安装此应用程序时,检索大量数据返回错误:
502 - Web server received an invalid response while acting as a gateway or proxy server.
There is a problem with the page you are looking for, and it cannot be displayed. When the Web server (while acting as a gateway or proxy) contacted the upstream content server, it received an invalid response from the content server.
当应用程序在我自己的计算机上运行并连接到服务器 B 的 SQL 时,没有返回错误并且任务成功完成。
是超时还是优先级错误?服务器 A 和服务器 B 的事件查看器均未返回错误。是服务器 A 的配置(IIS 还是其他)?
注意:服务器中的其他应用程序正常运行。
注意:应用程序的日志有以下类型的消息:
warn: Microsoft.EntityFrameworkCore.Query[20500]
The LINQ expression 'where {from String q in __8__locals1_Geobricks_2 where [l].Geobrick.StartsWith([q]) select [q] => Any()}' could not be translated and will be evaluated locally.
通过优化 SQL 查询解决了这个问题。
我设法缩短了从 SQL 服务器检索到的数据,其中包含以前未包含在提交给 SQL 服务器的 SQL 命令中的 WHERE 子句。
我没有尝试,但可能我可以将命令超时设置为更大的时间......