WCF超过50个并发长期运行请求

加号Maci

嗨,我有一个WCF测试服务,它不只执行thread.sleep(10000),而且从200个客户端调用它。问题是响应时间越来越长,在40秒内经过10分钟之后……我也已经厌倦了更改web.config和machine.config。我们有Windows 2008 r2和IIS 7.5

在我的web.config中

<serviceThrottling maxConcurrentCalls="100" maxConcurrentSessions="400" maxConcurrentInstances="2000" />

在我的macine.config中

<processModel autoConfig="false" logLevel="None" maxIoThreads="1000" maxWorkerThreads="1000" minIoThreads="100" minWorkerThreads="100" />

在我的Aspnet.config中

<applicationPool maxConcurrentRequestsPerCPU="5000" maxConcurrentThreadsPerCPU="0" requestQueueLimit="5000" />

WCF服务:

public interface ISampleService
{

    [OperationContractAttribute]
    string SampleMethod(string msg);
}

public class SampleService : ISampleService
{


    public string SampleMethod(string msg)
    {
         Thread.Sleep(10000);
        return msg;
    }
}
加号Maci

这是我的解决方案:

[ServiceContract(Namespace = "http://microsoft.wcf.documentation")]
public interface ISampleService
{
    [OperationContract]
    Task<string> SampleMethod(string msg);
}

public class SampleService : ISampleService
{
    async Task<string> ISampleService.SampleMethod(string msg)
    {
        var task = Task.Factory.StartNew((param) =>
                                         {
                                             return "Return from Server : " + msg;
                                         }, TaskContinuationOptions.LongRunning);
        await Task.Delay(10000);
        return await task.ConfigureAwait(false);
    }
}

而且我只需要web.config更改:

<serviceThrottling maxConcurrentCalls="500" maxConcurrentSessions="1000" maxConcurrentInstances="2000" />

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WCF超过50个并发的长期运行请求

来自分类Dev

SignalR并发请求超过5万

来自分类Dev

SignalR并发请求超过5万

来自分类Dev

C#并发-长期运行任务的首选方法

来自分类Dev

处理Django长期运行的上游请求的最快,最简单的方法

来自分类Dev

Apache调优许多长期运行的请求

来自分类Dev

超过50万个元素的Quicksort崩溃

来自分类Dev

为什么不能从YARN请求超过32个内核来运行作业?

来自分类Dev

C#使用WebTestRequest运行并发请求

来自分类Dev

C#使用WebTestRequest运行并发请求

来自分类Dev

创建一个长期运行的Esper流程或服务

来自分类Dev

Node.js 中超过 256 个并发 websocket 连接

来自分类Dev

如何激发10000个并发请求?

来自分类Dev

是否可以使用WCF实现长期运行的多次写入事务?

来自分类Dev

通过WCF长期运行的服务在后端时应在何处托管SignalR

来自分类Dev

HighCharts饼图,超过50个标签,但未全部显示

来自分类Dev

与另一个异步长期运行任务一起运行Tornado

来自分类Dev

并发小批量运行承诺(一次不超过X)

来自分类Dev

SignalR:工作进程仅限于10个并发请求

来自分类Dev

libcurl 对多个并发请求使用 1 个连接

来自分类Dev

执行超过1000个HTTP请求任务失败

来自分类Dev

追加检索超过请求的13个字节

来自分类Dev

Clojure原子的长期运行功能

来自分类Dev

测试长期运行测试的模式

来自分类Dev

优化内存读写的长期运行

来自分类Dev

Clojure原子的长期运行功能

来自分类Dev

预定的长期运行的用户查询

来自分类Dev

TAP / TPL用于长期运行,计算界操作:不是一个好主意?

来自分类Dev

每秒轮询数据库并启动n个长期运行的任务

Related 相关文章

热门标签

归档