gpt4 book ai didi

asp.net - 增加 IIS7 中 Web 服务的最大并发连接数(负载测试)

转载 作者:行者123 更新时间:2023-12-02 18:00:59 25 4
gpt4 key购买 nike

我正在尝试为我们的一项 Web 服务编写一个简单的负载测试器,该服务通过 IIS7 提供服务。我正在启动大量线程(作为任务)来调用 Web 服务作为 Web 引用。

尽管线程全部启动,但 Web 服务只能处理来自应用程序的 2 个并发连接。

我知道根据规范 simultaneous connections are limited to 2 per user 。为了这个负载测试器(我猜是一个用户),我想同时打开多个连接。

我尝试将以下内容添加到 Web 服务的 web.config 中。

  <system.net>
<connectionManagement>
<add address="*" maxconnection="40"/>
</connectionManagement>
</system.net>

我的设置如下:

网络服务位于 http://devserver/MyWebServiceApp/MyWebService.asmx ,其中 MyWebServiceApp 配置为应用程序。

webmethod 可以被视为一件微不足道的事情,它只是在返回响应之前等待 20 秒(这样很容易看出在任何时候只有 2 个连接打开)。

负载测试器代码的最简单形式如下:

Imports System.Threading.Tasks

Module SuperBasicLoadTester

Sub Main()
ThreadLauncher(10)
End Sub

Sub ThreadLauncher(ByVal numberOfThreads As Integer)
Dim tasks(numberOfThreads - 1) As Task
For index As Integer = 0 To numberOfThreads - 1
tasks(index) = Task.Factory.StartNew(AddressOf SendRequest)
Next
Task.WaitAll(tasks)
End Sub

Sub SendRequest()
Dim myWebServiceCaller As New MyWebService.ServiceMethods
myWebServiceCaller.Url = "http://devserver/MyWebServiceApp/MyWebService.asmx"
Dim response As String = myWebServiceCaller.MyWebServiceMethod("Some string passed to the web service method")
End Sub

End Module

我尝试将其他负载测试软件(例如 soapUI )指向 Web 服务,并观察到相同的问题。

如果您能提供有关如何增加此连接限制(用于测试目的)的任何指示,我将不胜感激。

编辑:

  • 我应该补充一点,Web 服务框运行的是 Windows 2008 R2。
  • 此外,我还同时运行了 SoapUI 和我的负载测试器,并且每个都是每个只能请求 2 个连接(即总共 4 个)。

提前致谢,

阿里

最佳答案

我在这里找到了答案:Multiple concurrent WCF calls from single client to Service

问题出在我的客户端,而不是接收服务。我需要在客户端初始化时设置 System.Net.ServicePointManager.DefaultConnectionLimit。

关于asp.net - 增加 IIS7 中 Web 服务的最大并发连接数(负载测试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9924186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com