问题标签 [web-garden]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
715 浏览

asp.net - 网园环境及asp.net应用中的缓存

我们正计划将我们的 Web 应用程序迁移到 Web Garden 环境。我们倾向于使用 Windows Server App Fabric Caching 来提供分布式缓存。这是正确的方法吗?/除了Appfabric Caching之外,还有其他方法可以实现分布式缓存吗?

0 投票
1 回答
280 浏览

web - 一个 Web 请求由两个 Worker 进程处理

我正在 IIS 服务器中配置一个网络花园。

我知道网络花园将不止一次为应用程序池提供工作进程,这意味着一旦请求数量超过限制,就可以为一个网络应用程序创建额外的 w3wp.exe。(如果我错了请纠正我)

从上述情况来看,一个请求是否有可能被多个 w3wp.exe 处理?

并且还需要明确是否将为单个应用程序创建两个 w3wp.exe?或两个 w3wp.exe 将共享应用程序池中的应用程序。

0 投票
2 回答
1340 浏览

azure - Azure 应用服务计划中的 Web 应用是否作为 IIS 中的虚拟 Web 服务器实现?是否使用网络花园?

如果 Azure 应用服务计划是专用于其中定义的 Web、API、逻辑和移动应用程序的虚拟机,这是否意味着应用服务计划中的 Web 应用程序是该虚拟机上 IIS 中的虚拟 Web 服务器实例?

假设是这种情况,并且每个虚拟网站都有自己的应用程序池,是否存在 Azure 扩展策略或方案,其中该应用程序池中的多个工作进程将运行,从而创建一个网络花园?我对 Web 应用横向扩展的理解是,它会导致分配额外的虚拟机,而不是额外的工作进程。

0 投票
0 回答
785 浏览

c# - MongoDB从多个进程并发写/取导致批量写操作错误

我目前正在实现一个用于缓存的 MongoDB 数据库。

我制作了一个非常通用的客户端,保存方法如下:

对于我们的其他客户,调用此方法看起来类似于:

在我们将数据持久化到后端之后,我们通过调用 Get 方法并传递参数 true 从 MongoDB 重新加载缓存。所以我们重新加载所有数据。

这适用于大多数用例。但是考虑到我们如何为同一个应用程序使用 Web-garden 解决方案(多个进程),这会导致并发问题。如果我在另一个用户重新加载页面时保存并重新加载缓存,有时它会引发 E11000 重复键错误集合。

命令 createIndexes 失败:E11000 重复键错误收集:缓存。人员索引:Id_1_Name_1_Email_1 重复键:{:1,:“John Doe”,:“foo@bar.com”}。

考虑到这是一个运行多个 IIS 进程的网络花园,锁定不会有多大用处。考虑到批量写入应该是线程安全的,我有点困惑。我已经研究了更新数据,但是将我们的客户更改为特定类型并更新每个字段将花费太长时间,并且感觉像是不必要的工作。因此,我正在寻找一个非常通用的解决方案。

更新 删除了插入和删除。将其更改为 ReplaceOneModel 的集合。目前遇到的问题是仅保留集合中的最后一个元素。

刚刚传入了一个包含 811 项的集合,执行此方法后只能在集合中找到最后一项。

持久化 DTO 的示例:

有了这个索引:

0 投票
0 回答
1014 浏览

asp.net - Session Management For Multiple Server

I want to move data with session using asp.net . I want to explain my question with scenario.

I have four layers in my application. When I login my portal with user password I create session for username and userid. for example,I have three servers for business layer that has load balance in front of each server. How can i carry data(username/userid session) with this scenario. Or if you have a different way for carry data (without session) can you share ?(I added a picture for my scenario.) enter image description here

Note: I am only a software developer and I want to search best practice for this scenario.

0 投票
1 回答
164 浏览

asp.net - iis 网络花园循环法不起作用

我已将最大工作进程设置为2,但在日志中看到大部分请求都发送到同一台机器。

这是一组具有相应进程 ID 的并发请求的示例:

如您所见,网络花园是循环赛制是一个谎言。

0 投票
1 回答
183 浏览

asp.net - 如何使用 ASP.NET 路由到 IIS(Web Garden)中的特定 Web 工作进程?

我们的 Web 应用程序依赖于一个封闭源代码的专有 DLL/库,该 DLL/库似乎设置了静态变量,这些变量似乎在不同请求中持续存在并与状态混淆。这对于单个用户的一批请求来说很好,但是如果另一个用户开始使用该应用程序,则来自流程范围内第一个用户的静态变量会与第二个用户的交互混淆。

在每个用户/请求的基础上,我可以确定第三方 DLL 的静态内存使用范围的最佳方法是什么?

我相信最简单的实现是将每个请求路由到特定的 Web Worker(不同进程的内存空间),但我似乎找不到任何 IIS/ASP API 可以控制 IIS 如何选择特定的 Web Worker一个要求。

0 投票
0 回答
386 浏览

wcf - IIS 8.5 请求管理 | 队列 | 超时问题

我有一个 WCF SOAP 服务,它接收来自其他系统的太多同步请求

当当时有太多请求时,我遇到问题 IIS 队列将无法提供正确的结果,服务器内存和 CPU 使用率变高并丢弃请求或超时

我进行了正常的负载测试(100 个并发用户的 100 个请求),并且 IIS 在达到最大队列长度后开始丢弃请求以及所有请求延迟以提供响应,并且其他进来的请求延迟到第一个一个要么超时,要么响应。

下面是服务器配置

在此处输入图像描述 WCF 应用程序代码使用 Resharper 工具测试,没有对象或内存处置问题

是否有设置应用程序池或工作进程来管理队列的设置?

我可以在应用程序中应用网络花园吗?

请帮我解决这个问题

提前致谢

0 投票
1 回答
1319 浏览

asp.net-mvc - 将 ASP.NET InProc 会话状态模式更改为 State Server 或 SQL Server State

首先,我是 Web 应用程序编程的新手。我来自桌面应用程序(WinForms 和 WPF)。最近,我被分配了一个过去由其他人制作的项目。这个项目是在 ASP.NET MVC 中完成的,它使用 InProc 会话状态模式。

现在,我想构建一个网络园艺,即为应用程序池使用多个工作进程。我用谷歌搜索,发现 InProc 会话不适用于网络园艺,因为应用程序池中的每个工作进程都使用自己的会话状态。所以我打算把它切换到另一种会话状态模式,比如State Server或者SQL Server。

现在我有一个疑问。除了在 Web.config 中更改会话状态模式:

... 我需要做一些额外的工作吗?例如重新编程 ASP.NET MVC 应用程序、配置或其他一些东西以使其工作?

下面我分享一些有趣的链接:

0 投票
1 回答
103 浏览

asp.net - Web Garden vs Tuning ASP.NET Web.config file by using parameters such as MaxWorkerThreads

Some people recommend to avoid using Web Garden. Instead they recommend to try first tuning some parameters in ASP.NET app web.config file by using this.

As far as I know Web Garden consists on incrementing the number of worker processes in the Pool. It is like having multiple threads serving the incoming requests.

So what's the difference between using multiple worker processes for the Pool and tuning the ASP.NET web.config file by using parameters such as MaxWorkerThreads, MaxIOThreads, etc.?

Both consists on using more than one thread so I am not be able to see the difference between these two techniques.