问题标签 [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 回答
2149 浏览

asp.net-mvc - MaxWorkerThreads vs App Pool Worker Processes:有什么区别?

据我所知,可以通过不同的方法提高在 IIS 上发布的 ASP.NET 应用程序的性能:

  1. Web Garden:为 App Pool 使用超过 1 个工作进程。
  2. Web 农场:拥有多台机器为同一应用程序的一个实例提供服务
  3. 调整 ASP.NET web.config 文件

...也许还有其他我不认识的人...

选项 1 和 2 需要对复杂的数据结构进行序列化,并将会话状态模式设置为 State Server 或 SQL Server(InProc 模式不兼容且不起作用)

我想关注选项 1 和 3:

关于 web garden(选项 1),我们为一个应用程序池设置了 1 个以上的工作进程,并且我们必须将状态服务器或 sql 服务器设置为会话状态模式。

在选项 3 中,我们通过设置 maxWorkerThreads 等参数来调整 web.config 文件,如此处所述。

现在很多问题浮现在我的脑海里......

我无法区分在选项 1 中为 App Pool 设置超过 1 个工作进程和在选项 3 中设置 maxWorkerThreads > 1 之间的区别。

  1. 在选项 1 中,您有超过 1 个工作进程可用于处理传入请求,而在选项 3 中,您有许多线程可用于处理传入请求,那么有什么区别?
  2. 工作进程=线程?
  3. 应用程序池的工作进程(选项 1,案例#worker processes > 1)的工作和行为方式是否与我们有许多线程(选项 3,案例 #maxWorkerThreads > 1)相同?
  4. 选项 1 中的进程是否与选项 3 中的线程相同?
  5. 此外,在选项 3 中,当应用程序池有 1 个工作进程但在 web.config 文件中设置 maxWorkerThreads > 1 时,它是如何工作的?与选项1中的情况不同吗?
  6. 另外,我可以将 InProc 会话状态模式与选项 3 一起使用吗?
0 投票
2 回答
62 浏览

web - 使用 jMeter 测试 IIS Web Garden - 请求使用相同的工作线程

我正在使用 IIS 网络花园来处理具有 15 个工作进程的长时间运行的请求。

例如,对于 3 个浏览器,通常会使用多个工作进程。

使用 Apache jMeter,所有请求都使用相同的工作进程。

有没有办法强制使用多个工作进程?

0 投票
1 回答
195 浏览

asp.net-mvc - SQL Server:在存储过程中使用临时表时的并发性

我在 IIS 服务器上发布了一个 ASP.NET MVC 应用程序。我在这里使用网络园艺,我的意思是,应用程序池有多个工作进程来处理传入的请求。此应用程序也被许多用户客户使用。

这个应用程序调用一个使用一些本地临时表的 SP(#example)。举个例子:

我担心并发性,例如,如果用户客户端调用存储过程而另一个先前的调用同时运行会发生什么?这里可能是并发问题吗?

0 投票
1 回答
199 浏览

c# - 如何在会话存储在状态服务器(Web Garden)中的多线程中使用会话变量

我需要在旧应用程序中将状态管理从inProc 更改为 StateServer 。

有在新线程中执行的方法。

代码如下所示。

启用网络花园后,使用会话变量更新状态不会按预期工作。

  • 我尝试使用类变量而不是会话变量。
  • 使用缓存而不是会话。

他们都没有为我工作。

注意:此代码来自至少 8 年前开发的现有应用程序。

我只想在不破坏功能的情况下在网络花园中运行它。

0 投票
0 回答
64 浏览

asp.net-mvc - Web Garden 行为不稳定:用户被随机踢出

我有一个 ASP.NET MVC Web 应用程序,它在四个工作进程(网络花园)配置下运行良好,并使用 ASP.NET 状态服务来管理传入会话。

会话状态在 Web.config 配置文件中配置如下:

web.config 配置文件中没有配置 machineKey,并且 ASP.NET State 服务使用默认的网络服务帐户运行。

其他 Web 服务器(这是一个 VMWare 虚拟机)详细信息如下:

  • IIS 8.5.9600.16384
  • Windows Server 2012 R2 标准 64 位
  • 48GB 内存

关于应用程序池配置,需要强调的是:

  • 启用 32 位应用程序
  • 集成模式和按需启动
  • 加载用户配置文件已启用
  • 空闲超时操作设置为挂起
  • 启用快速故障保护
  • 禁用回收和禁用所有限制(设置为 0)

此外,应用程序池一直使用自定义域管理员帐户进行配置,但由于安全原因,目前已更改为使用自定义非管理员帐户。

更改应用程序池帐户后,Web Garden 开始表现不稳定:用户被随机踢出。他们收到 403 Unauthorized 和 404 Not Found http 错误,甚至我记得看到 503 Service Unavailable。

可能是什么原因?

2020 年 11 月 11 日更新

在此处输入图像描述 在此处输入图像描述

0 投票
0 回答
53 浏览

asp.net-mvc - Web Garden - MachineKey and cookieless necessary in single hosting server?

I have an ASP.NET MVC application which is hosted in a web server. It is configured to use Web Garden using StateServer.

ASP.NET State service is hosted in the same server where ASP.NET MVC application is.

In application's web.config file I have set below configuration:

I have not set cookieless="false" in the session state. Also I have not set any Machine key.

Do I need to set cookieless="false" and machine key in a single hosting server?

What is the purpose of setting cookieless="false" and machine key? What is the difference between using them or not?

0 投票
0 回答
40 浏览

asp.net-mvc - Web Garden 的行为因应用程序池标识上的用户设置而异

我已经在 IIS(只是一个 ASP.NET MVC 应用程序)中配置了我的网站以使用 Web Garden。我注意到,如果我将其应用程序池标识设置为域管理员帐户(不是本地管理员帐户),它可以正常工作。但是,如果我将它设置为任何非管理员帐户,它就不起作用(用户会因 http 错误 403 和 404 随机启动(请参阅下面的屏幕截图)并且系统因此变得不稳定)。那么我是否需要在其他地方为这个非管理员帐户设置权限?或者也许... 是否必须成为管理员帐户才能使 Web Garden 正常工作?有没有人经历过这个?有人可以证实这一点吗?

最后更新 2020/11/11 :

在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
1985 浏览

asp.net-mvc - IIS:FailedRequestTracing 模块未能将缓冲事件写入日志文件以获取匹配失败定义的请求

在我的网站中,我启用了失败请求跟踪日志功能并将其配置为将日志文件存储到默认文件夹 %SystemDrive%\inetpub\logs\FailedReqLogFiles 中,并且我设置了一些失败请求跟踪规则。

我已授予该文件夹以获取应用程序池标识的写入权限,并且我已检查 IIS_IUSRS 帐户是否对该文件夹也具有写入权限。

我的网站是一个使用 Web Garden 配置的 ASP.NET MVC 应用程序(应用程序的池设置为 4 个工作进程)。

日志文件已正确存储在文件夹中,但我在事件日志中收到连续的警告消息,如下所示:

FailedRequestTracing 模块未能将缓冲事件写入日志文件以匹配失败定义的请求。在纠正此情况之前,不会生成任何日志。在过去的 %2 分钟内,该问题至少发生了 %1 次。数据是错误的。

原因似乎是多个工作进程试图在同一文件夹中创建文件日志,因此在按 anilr 解释的相关数字顺序创建下一个文件名时,它们会发生冲突/冲突

如何解决此问题以避免事件日志中不断出现警告消息?

注意:我在 Windows Server 2012 R2 Standard 下使用 IIS 8.5.9600.16384。

0 投票
0 回答
1400 浏览

asp.net-mvc - IIS 8.5:服务应用程序池的进程'' 遇到与 Windows 进程激活服务的致命通信错误

我在 Windows Server 2012 R2 Standard 下的 IIS 8.5.9600.16384 上运行 ASP.NET MVC 应用程序。有时我在事件日志中出现以下错误,导致我的应用程序有一段时间没有响应。

事件 ID 5011 - 来源:WAS

为应用程序池提供服务的进程与 Windows Process Activation Service 发生了致命的通信错误。进程 ID 为“1668”。数据字段包含错误号。

我的网站使用 Web Garden,其应用程序池设置为 4 个工作进程并使用 StateServer 模式。此外,应用程序池标识设置为域帐户。

ASP.NET 状态服务在我的网站发布的同一台机器上运行。

关于可能是什么问题的任何想法?

0 投票
0 回答
1422 浏览

asp.net-mvc - IIS 8.5:为应用程序池“AppPool 名称”提供服务的进程无法响应 ping

我在 Windows Server 2012 R2 Standard 下的 IIS 8.5.9600.16384 上运行 ASP.NET MVC 应用程序。有时我在事件日志中出现以下错误,导致我的应用程序有一段时间没有响应。

事件 ID 5010 - 来源:WAS

为应用程序池“AppPool 名称”提供服务的进程未能响应 ping。进程 ID 为 '.

我的网站使用 Web Garden,其应用程序池设置为 4 个工作进程并使用 StateServer 模式。此外,应用程序池标识设置为域帐户。

ASP.NET 状态服务在我的网站发布的同一台机器上运行。

关于可能是什么问题的任何想法?