2016-05-01 71 views
0

我有一个通过SOAP接口返回数据的IIS应用程序。所有的调用都是原子的由于与后端通信的问题,此IIS应用程序不是线程安全的。一次发出多个电话会导致不稳定。 IIS应用程序IS STABLE运行多个实例(我测试了100个应用程序)在单独的应用程序池中。我已配置此IIS应用程序的多个实例,然后使用负载平衡策略(在客户端内)来调用该服务。一次只能有一个电话通过每项服务。我有这样的URL:跨站点或应用程序实现IIS负载均衡 - 不是服务器

app1-100正在单独的池运行相同的副本。

我想配置一个主网址为:

我怎么会去配置呢?它甚至有可能吗?

回答

0

您可以尝试在IIS中设置一个Web Garden,它将为同一个站点创建多个工作进程。需要注意的问题是,如果您的应用程序保持会话状态,则它不会持久保存在共享的持久性存储中(例如Redis)。

设置Web花园编辑网站的应用程序池的属性和设置最大工作进程的数大于1

IIS将全面工作进程之间循环的请求。

更新

上面实际上并不强制在一个时间的单个请求。要强制执行并发请求限制,您需要调整网站的高级设置。 *右键单击该Web站点节点 *管理网站 *高级设置 *更改最大并发连接

如果将其设置为1,那么不管你有多少应用程序池运行,则只能处理一个在时间。您可以尝试将其设置为2并拥有2个工作进程,因为IIS应将第二个进程发送到第二个进程,但不保证每个应用程序池都要序列化。只有一只在设置最大辅助一次处理1个最大并发连接数为1

enter image description here

web garden setting

+0

我有问题,就是我只能拿在单独的池这个稳定运行。我如何建立一个拥有独立泳池的网络花园? –

+0

到底如何描述。按照定义,网络花园是独立的游泳池。设置为2将导致2个w3wp.exe进程为您的网站提供请求。 – Avner

+0

我的确尝试了你的建议,并且创建了多个w3wp.exe,但是最后我遇到了同样的问题。我注意到w3wp实例的数量很少,比通过服务器的呼叫数量少。我似乎一次只限于一个电话/应用/游泳池。 –