我们大约每月一次遇到此问题.很难确定原因,所以任何帮助将不胜感激.这会导致应用程序池停止并使网站关闭.我们已经浏览了所有日志文件并且没有任何结论.我们在IIS 6上使用2.0.3版本.
我们有一个相当大的ASP.Net站点使用MS商务服务器用c#编写,在32位环境中运行.我看到工作人员经常处理高达980兆字节.我想简要介绍一下这个过程,并确定在代码中可以获得哪些收益以减少此站点的内存占用量.我的问题是什么工具在ASP.Net Web应用程序上做这种事情时效果很好?
我正在寻找可以给我非常具体的反馈的工具,这将有助于清楚地看到代码中需要更改的内容.最好是这个工具可以描述我们的生产环境工作者流程,以便比较更具体的数据集.
[编辑]
到目前为止,似乎共识是它在蚂蚁和JetBrains之间徘徊.有人用过吗?如果是这样哪一个优越,或者每个优点和缺点是什么?
当我在IIS 6中为我的Web应用程序设置应用程序池时,它默认工作进程在1740分钟(29小时)内回收.
即使网站上有活动,或者只有29小时不活动,这种回收是否会发生?
我正在使用ASP.NET 2.0,.NET 2.0 Framework和IIS7。我看到“工作进程”选项下出现大量的“请求”队列。记录状态似乎Authenticate Request和Execute Request Handles比什么都重要。
我修改aspnet.config了C:\Windows\Microsoft.NET\Framework64\v2.0.50727(32位路径和64位路径)以包括:
maxConcurrentRequestsPerCPU="50000"
maxConcurrentThreadsPerCPU="0"
requestQueueLimit="50000"
Run Code Online (Sandbox Code Playgroud)
我修改machine.config了C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG(32位和64位路径)以包括:
autoConfig="false"
maxIoThreads="100"
maxWorkerThreads="100"
minIoThreads="50"
minWorkerThreads="50"
minFreeThreads="176"
minLocalRequestFreeThreads="152"
Run Code Online (Sandbox Code Playgroud)
我仍然遇到这个问题。
该问题表现为工作进程队列中的大量请求。
发生此问题时,到网站的当前连接数将显示500。我认为没有出现此问题的并发连接超过500个。
随着请求的阻塞,Web应用程序变慢。
刷新应用程序池可以解决一段时间(如预期的那样),因为负载分散在两个池之间。
问题FIXED REQUEST的应用程序池已设置为在50000刷新。
注意:我相信.NET 3.5框架使用2.0框架appnet和计算机配置文件。
服务器资源(CPU,RAM)未充分利用。
我找不到任何关于如何使queue_classic将日志写入文件的解决方案.Queue_Classic用于记录的Scrolls似乎也没有任何示例.
有人能提供一个有效的例子吗?
我试图在我的机器上安装Visual Studio 2008 SP1,但我遇到了这个问题.

我查了一下,看起来IIS Worker Process是某种 w3wp.exe,所以我查看了我的Windows任务管理器,发现w3wp.exe没有运行.我还在IIS管理器中查看了我的工作进程,但它也没有启动.那么,我如何关闭这个应用程序,以便我可以继续安装或者还有其他我可以做的事情?
在.NET 4.6中的AppDomain中抛出AccessViolationException(或其他损坏状态异常)时,如何防止整个应用程序(进程)崩溃?我的目标是在其AppDomain中包装第三方库(GdPicture.NET条形码阅读器),根据IIS崩溃转储间歇性地崩溃IIS工作进程.换句话说,我想在自己的应用程序域中隔离第三方库调用,这样它就可以在不占用整个网站的情况下自行失败.
在下面的示例代码中,如果我不使用HandleProcessCorruptedStateExceptions属性,则无法捕获在另一个AppDomain(在ClassLibrary1.dll中)中引发的AccessViolationException(包装在TargetInvocationException中).如果我装饰HandleProcessCorruptedStateExceptions(仅用于第二个AppDomain调用),主进程是否可以继续安全或是否变为不稳定状态?
具有两个项目的Visual Studio解决方案(控制台应用程序和类库).
using System;
using System.Reflection;
using System.Runtime.ExceptionServices;
using System.Security;
namespace StackOverflowQuestion
{
class Program
{
static void Main(string[] args)
{
new Tester().RunTest();
}
}
class Tester
{
public void RunTest()
{
var myTestAppDomain = AppDomain.CreateDomain("My Test AppDomain");
var loader = (Loader)myTestAppDomain.CreateInstanceAndUnwrap(typeof(Loader).Assembly.FullName, typeof(Loader).FullName);
TestHandleProcessCorruptedStateExceptions(loader, myTestAppDomain);
// how can I make sure process doesn't crash when AppDomain "My Test AppDomain" crashes
Console.WriteLine("This won't be written to console unless [HandleProcessCorruptedStateExceptions] attribute is present...");
// keep console window open
Console.ReadKey(); …Run Code Online (Sandbox Code Playgroud) c# worker-process appdomain access-violation corrupted-state-exception
我们有一个ASP.net(2.0)应用程序,配置为使用IIS中的Web园选项与多个工作进程一起运行.我们的大多数数据都是缓存的,偶尔我们必须在网站发生变化时清除缓存.我们有一个简单的页面,它将遍历HttpCache项并清除它们.
但是每个工作进程都有自己的HttpCache对象副本,因此当我们请求缓存刷新页面时,它只清除为特定请求提供服务的进程的缓存.不清除其他工作进程的缓存.
除了以编程方式回收应用程序池之外,有没有办法清除所有工作进程的HttpCache?
我们正在IIS 6上编写一个asp.net Web应用程序,并计划在会话中存储我们的用户登录变量.当工人进程回收时,这会被删除吗?
我目前正在开展一个项目,我们正在使用NGINX和Phusion Passenger.我已经做了一些关于如何使用不同配置进行最佳优化的研究,但我仍然不明白增加NGINX工作进程的数量如何适应场景.似乎优化更大负载的真正因素是增加乘客流程的数量.
有没有人能够了解1个NGINX工人流程与50个错误乘客流程之间的差异与2个NGINX工作流程之间的区别是什么?