0

我有一个托管在天蓝色云上的 ASP .Net 网站(以前在 Godaddy 共享托管中)该网站基本上是一个多用户测试网站,用户登录并进行在线测试。

该站点一次加载测试的所有问题(40 个数字),并使用 javascript 显示/隐藏向用户一个接一个地显示。并且每个选定的答案都应立即使用确认按钮进行确认,该按钮会进行 ajax 调用以将答案保存到服务器。

现在两个托管服务提供商都给我同样的问题。当有这么多并发用户(我认为)时,答案不会被保存(ajax 调用),并且当单击最终提交按钮(回发)时,页面就会挂起。所以这一定是我的代码的问题。

我昨天创建了一个新的 web 角色实例,前 60 多个测试运行没有任何问题,晚上很少有用户报告错误。所以我猜测一些内存泄漏或某种积累。

我使用 LINQ to SQL 进行数据库操作。

真正的问题是我不知道如何在我们的开发机器中复制这个(负载测试?)。

任何形式的建议或提示表示赞赏。

(如果您需要有关代码或其他详细信息的更多信息,请告诉我)

4

4 回答 4

1

出于生产目的将应用程序移至 Windows Azure 后,您确实应该拥有Cerebrata 的诊断管理器的副本。这将使您可以轻松查看所有日志和性能计数器,以确保您解决了正确的问题。

如果没有一些数据,您是否需要扩大、扩大或是否存在对不同资源的争用将很难确定。

我与这家公司或产品没有任何关系,我只是诚实地认为它是完成这项任务的最佳选择

于 2012-07-21T11:20:38.490 回答
0

您是否在调试或发布中部署了站点?

当站点以调试模式部署时,我们经历了一些非常古怪的事情。

调试与发布

于 2012-07-21T03:02:16.500 回答
0

如果您的站点存在性能问题(考虑到您的代码没有问题),您可以将VM 的大小增加到中型或大型以获取更多资源。

Ans 同时处理流量(多个用户),您可以根据您网站的流量将您的应用程序从 1 个实例扩展到没有实例

于 2012-07-21T05:59:12.267 回答
0

要在您的开发网站上轻松复制负载,您可以使用 Visual Studio Web 测试。

它允许记录浏览器会话并重播它,但使用一台或多台机器并行 X 量会话。如果您有泄漏或并发错误,它应该可以帮助您查看它。

Web 测试功能不是所有版本的 Visual Studio 的一部分,如果您今天没有它,它会变得很昂贵。

您可以多花几个小时或多或少地做同样的事情。

1 - 使用我最喜欢的网络调试工具之一fiddler来“记录”您的页面和服务器之间的交换。

2 - 使用 fiddler 重放一些 http 请求,看看是否可以重现问题

3 - 为了进一步推动您的网站,您可以创建一个小型 C# 程序来复制您在 fiddler 中看到的 http 请求,但具有多个并行线程。您将需要使用 HttpClient 类。

于 2012-07-21T08:26:39.283 回答