无法连接到远程服务器 - s-s-rS 2008 - webservice

Posted

技术标签:

【中文标题】无法连接到远程服务器 - s-s-rS 2008 - webservice【英文标题】:unable to connect to remote server - s-s-rS 2008 - webservice 【发布时间】:2009-05-07 16:49:45 【问题描述】:

我有一个试图通过 ReportViewer 控件访问 s-s-rS 2008 ReportServer 的 asp.net 页面。使用在服务器上设置为“浏览器”角色的代理帐户访问报告。对于常规报告访问方案,此设置可以正常工作。但是每当我们尝试使用 100 个虚拟用户对该页面进行负载测试时,我们就会开始看到“无法连接到远程服务器”错误。负载测试设置为从 10 个用户开始,每 30 秒后增加 10 个用户。测试设置为运行 30 分钟。

堆栈跟踪如下:

System.Net.WebResponse GetWebResponse(System.Net.WebRequest) System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest 请求)在 System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest 请求)在 Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.GetWebResponse(WebRequest 请求)在 Microsoft.Reporting.WebForms.ServerReportSoapProxy.GetWebResponse(WebRequest 请求)在 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(字符串 方法名,对象 [] 参数)在 Microsoft.SqlServer.ReportingServices2005.Execution.ReportExecutionService.LoadReport(字符串 报告,字符串 HistoryID)在 Microsoft.SqlServer.ReportingServices2005.Execution.RSExecutionConnection.LoadReport(字符串 报告,字符串 HistoryID)在 Microsoft.Reporting.WebForms.ServerReport.GetExecutionInfo() 在 Microsoft.Reporting.WebForms.ServerReport.SetParameters(IEnumerable`1 参数)

报表服务器配置中是否存在需要更改以支持这样一种负载配置文件的内容? 我在想,100 个用户对于盒子来说并不算多,因为盒子有 QuadCore Xeon 3.Ghz 和 10GB RAM。

【问题讨论】:

【参考方案1】:

一些问题;

在报表服务器上观察到的负载是多少;根据报告,如果返回数千行数据并对其进行操作,您可能会因用户数量较少而使其过载。根据您加载 vu 的方式,您可能会过早地输入过多的数据/请求。

其中一台机器上是否运行了自适应防火墙/ Windows 防火墙?一些防火墙会将此负载测试视为恶意行为,并在测试中将其部分阻止。

您是否排除了广告问题?如果不是,则 sqlserver 是否正确设置到 AD 中(信任委托并具有注册的 SPN)并且在运行测试时 AD 服务器是否性能良好;我参与了一个使用普通域服务器的站点的负载测试;在测试运行期间,我们将用户从未参与测试的整个网络中的应用程序和服务器中崩溃,因为我们通过错误设置的服务器通过数百万个请求使域控制器过载。

【讨论】:

aspx 页面显示报告 URL 列表 - 每个报告都会在新选项卡中打开。测试需要点击一个报告网址,输入一些参数并点击“查看报告”,等到响应返回,然后返回报告列表并点击下一个报告网址。直到我们完成所有报告网址为止。我们有大约 15 个报告,其中只有 3 或 4 个带回大量数据。来到服务器上观察到的负载 - CPU 使用率范围为 40-85 并保持在 100 秒左右.. 检查 s-s-rS 日志并比较性能测试运行时间前后的数据,以了解在发生错误时运行报告的情况,(msdn.microsoft.com/en-us/library/ms159110.aspx) 执行 100 % 加载时间映射到服务器故障;您可以通过将其从测试循环中删除来将其映射到一份报告吗? 我们发现用户数量的逐渐增加不会导致这些错误。只有当我们以我之前提到的速度加快速度时,它似乎才会发生。由于这个 s-s-rS 盒子是一个虚拟机,我们正在考虑对托管在物理盒子上的另一个 s-s-rS 实例运行这个测试,看看我们是否会得到不同的结果。【参考方案2】:

我非常相信您的 s-s-rS 服务器已超载。您是在共享服务器还是专用服务器上托管 s-s-rS?如果您将其托管在共享服务器上,则应与您的主机讨论此问题。我在asphostdirectory.com 主持我的s-s-rS 2008,到目前为止,服务真的很棒!我可以远程连接到我的 ReportManager,并且可以在线管理我的报告。到目前为止,我每月支付大约 6.99 美元来托管我的网站,当然,这是我目前可以获得的最佳价值。

如果您将 s-s-rS 托管在专用服务器上,则应考虑升级您的服务器资源。如果你真的有 10GB 的四核服务器,你应该没有问题!我不确定您的 s-s-rS 可以产生多少流量,但我真的相信具有 4GB RAM 的专用服务器足以处理 100 个并发用户。

希望对你有帮助

【讨论】:

【参考方案3】:

您可能需要检查托管 s-s-rS 的网站的应用程序池设置。确保没有将请求限制设置为任何低值。您可能想更改一些设置并重新运行测试,看看它是否有任何效果。

另外,如果你从 10 个用户开始,每 30 秒再添加 10 个用户,然后运行 ​​30 分钟的测试,那不是更接近 600 个用户吗?还是在五分钟后停止添加用户?

【讨论】:

是的。我们在五分钟后停止添加用户。并让测试运行 30 分钟。我需要检查网络框上的应用程序池设置。

以上是关于无法连接到远程服务器 - s-s-rS 2008 - webservice的主要内容,如果未能解决你的问题,请参考以下文章

如何解决SQL Server 2008 无法连接到

windows 2008 R2 出现身份验证错误。 无法连接到本地安全机构

SQL Server 2008/2014无法远程连接的可能原因之一

SQL2008订阅发布,进程无法连接到 Subscriber

无法将 C# 应用程序连接到 MSSQL

远程计算机无法连接到 Visual Studio Web 服务器