问题标签 [worker-process]

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 投票
2 回答
891 浏览

asp.net - 处理程序处理时网站没有响应

在我的网站中,我有一个处理程序 (GetFile.ashx),当它执行时,可以让您以给定的下载速率下载文件。处理程序需要执行,直到用户完成下载。问题是,当处理程序正在执行时,网站的其他页面(以及处理程序本身)无法访问,并且 IIS 会等到页面完成执行后再响应其他请求。我该如何解决?

我注意到的另一件事是我在 Amazon EC2 上的服务器上使用 IIS7 ...... IIS 怎么可能一次只能处理一个请求?

谢谢你。

0 投票
1 回答
964 浏览

iis - IIS7 工作进程指示中的高线程数是什么?

我的服务器目前遇到一些问题。

我有一个一直陷入僵局的游泳池。它是集成模式下的 IIS7 工作进程。

我最近注意到在任务管理器 > 进程中;线程数异常高。(与任何其他工作进程的 50 个相比,最多运行 450 个线程)

这通常表示某个特定问题,还是我在黑暗中尝试解决这个问题?

0 投票
2 回答
7198 浏览

asp.net - IIS Worker 进程在第一次请求时永远挂起

我正在努力解决我这几天遇到的问题。每次我的一个站点被重建或 AppPool 被回收时,第一个页面加载将永远挂起(好吧,我只等了 30 分钟)。它只发生在大约 10 个站点中的一个特定站点上。它是一个 ASP.NET 站点。

以下是我观察到的事情:

  • 在工作进程下的 IIS 管理器中,我可以看到该请求。动词 = GET,Sate = ExecuteRequestHandler,模块名称 = ManagedPipelineHandler。当然,经过的时间只会不断增加。
  • 如果我关闭发出初始请求的浏览器,然后打开一个新的浏览器发出另一个请求,页面将立即加载。
  • 在我的代码中,我的 Global.asax 文件的 Application_Start 不会在第一次请求时调用。在第二个请求时调用它。
  • 工作进程导致我机器上的内存使用量激增

我在对 IIS 进行故障排除方面缺乏经验,但是数小时的搜索使我无处可去。

我们最近在网站上所做的唯一主要代码更改是我们已经开始使用 log4net 实现日志记录。我已经尝试从我的 web.config 文件和 Global.asax 中删除任何 log4net 代码 - 仍然没有运气。

有没有其他人经历过这种情况,如果有,你是如何解决的?

任何和所有的帮助将不胜感激。

添加: 如果我在站点的根目录中放置一个 .txt 文件并将其作为构建后的第一件事加载,它将立即加载。然而,工作进程仍然像以前一样工作,内存使用量仍然很高。

最终编辑:

我觉得自己像个白痴。我无法解释为什么,但由于某种原因,我在 Global.asax 中的断点突然被击中,我能够确定问题所在。这是通过实体框架对数据库的调用,写得不好——即过滤是在提取了相关列中的所有行之后完成的。更糟糕的是,过滤是在 foreach 循环中完成的。不管怎样,现在一切都恢复正常了,我很高兴。

0 投票
2 回答
1852 浏览

visual-studio-2010 - 开始调试和附加到进程有什么区别

当我将项目附加到我的 w3wp.exe IIS 工作进程时,我的项目加载速度比“开始调试”时快得多。

但是,无论我“开始调试”还是“附加到进程”,同一个工作进程似乎正在处理相同数量的模块/DLL (w3wp.exe)。

为什么附加到流程的速度如此之快?

0 投票
1 回答
381 浏览

ruby-on-rails - 如何配置 queue_classic 日志记录

我在任何地方都找不到关于如何使 queue_classic 将日志写入文件的解决方案。Queue_Classic 用于记录的 Scrolls 似乎也没有任何示例。

有人可以提供一个工作示例吗?

0 投票
1 回答
1524 浏览

wcf - WSDL 的 XSD 的自定义身份重置连接下运行的 WCF 服务包括

我需要将 IIS 6 配置为使用工作进程的自定义标识来托管面向 .NET Framework 4.0 的 WCF 服务。身份是一个高度受限的域帐户,用于识别和管理在同一业务流程中交互的整个服务生态系统的权限。

我已运行带有 -ga 标志的 aspnet_regiis.exe,以将此身份权限授予服务器环境中的相关 ASP.NET 位置,并将其添加到 IIS_WPG 组中。在大多数情况下,一切似乎都比较顺利……除了自动生成的 WSDL 规范的包含。访问顶级 WSDL 规范工作正常(即 path.to/MyService.svc?wsdl),但 IIS 6 在返回 WSDL 包含的响应之前重置连接(即 path.to/MyService.svc?xsd=xsd0 , ETC)。当通过服务器上的环回访问和通过公共 IP 访问时,都会发生这种情况。重新配置应用程序池以在默认网络服务帐户下运行时不会发生这种情况。

我还没有找到任何关于这个特定问题的文档,但这并不是我第一次遇到当 IIS 6 工作进程在自定义域标识下运行时 .NET Framework 的某些部分无法正常工作时遇到的困难。我没有在本地安全策略中为此帐户配置任何特殊权限,除了预先配置的 IIS_WPG 成员作为批处理作业登录的权限。为了让工作人员正常工作,我可能缺少什么?

编辑:

事件查看器不包含任何错误,并且 IIS 日志显示服务器以 200 OK 响应请求,但完整状态值为200 0 64,表示 Win32 状态代码为 64。

我收到的关于该错误的转储net helpmsg 64如下:

指定的网络名称不再可用。

各实体的回应如下:

  • Chrome:错误 101 (net::ERR_CONNECTION_RESET):连接已重置
  • Firefox:页面加载时与服务器的连接被重置
  • Eclipse/Java: java.net.SocketException:连接重置

编辑:

服务日志记录(由BNL提供)产生以下异常转储:

System.InvalidOperationException:无法生成临时类(结果 = 1)。错误 CS2001:找不到源文件“C:\WINDOWS\TEMP\vxmgwmnl.0.cs”。错误 CS2008:未指定输入。

在 System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence) at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence) at System.Xml.Serialization.XmlSerializer.. System.ServiceModel.Description.ServiceMetadataExtension.HttpGetImpl.XmlSchemaMessage 的 System.Xml.Schema.XmlSchema.Write(XmlWriter writer, XmlNamespaceManager namespaceManager) 的ctor(类型类型,字符串 defaultNamespace)。System.ServiceModel.Channels.BufferedMessageWriter.WriteMessage(消息消息,BufferManager bufferManager,Int32 initialOffset,Int32 maxSizeQuota)在 System.ServiceModel.Channels.Message.OnWriteMessage(XmlDictionaryWriter writer)在 System.ServiceModel.Channels.TextMessageEncoderFactory 的 OnWriteBodyContents(XmlDictionaryWriter writer) .TextMessageEncoder.WriteMessage(Message message, Int32 maxMessageSize, BufferManager bufferManager, Int32 messageOffset) 在 System.ServiceModel.Channels.HttpOutput.SerializeBufferedMessage(Message message) 在 System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout) 在 System.ServiceModel。 Channels.HttpRequestContext.OnReply(消息消息,TimeSpan 超时)在 System.ServiceModel.Channels.RequestContextBase.Reply(消息消息,TimeSpan 超时)在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.Reply(MessageRpc& rpc)

0 投票
2 回答
1868 浏览

c++ - 老板-工人模型设计

我正在使用 Boss-Worker 模型模式开发代码。我有个疑问。Boss 将添加到的列表是 Boss 类的成员。为了让 Worker 能够访问它,我让 Worker 类继承自 Boss。

1)这是在老板和工人之间共享列表的正确方式吗?
2)我在我的代码中面临模棱两可的继承。我该如何解决?

线程类

老板

工人

Worker 继承自 Boss & ThreadClass 因为:

1) Worker 需要访问 Boss 的列表
2) Worker 需要 ThreadClass 的线程函数

0 投票
0 回答
310 浏览

linux - Master-Worker 进程的缓存意识设计

我最近开始研究一个使用熟悉的Master-Worker模式设计的服务器应用程序,其中一个特权线程管理多个工作线程。我现在意识到线程真的很麻烦。

我现在正在考虑转移到进程而不是线程的可能性,因为它们解决了我遇到的很多问题。

然而,性能是一个主要问题,我担心由于重复数据(查找表、上下文数据等)争夺 L2/L3 缓存中的空间而导致内存使用量增加,性能会下降。这些数据需要偶尔修改,并且可能会变得非常大。

给定N工作进程,如果有N这张表的副本,那就太可惜了。但是,有些表可以完美地复制到任何地方。但是也有许多malloc(3)可能被共享的分配内存,但可能分散在各处,导致随机页面由于写时复制而被复制。

是否有任何技巧或一般策略可以在多进程设计中保持内存使用紧密?

谢谢!

0 投票
4 回答
15709 浏览

.net - IIS 7.5 上的 .Net Framework 1.1(Windows 7-64 位)

我的情况是,我需要在具有 IIS 7.5 的 Windows 7、64 位机器上设置我的 .Net 1.1 代码库。

我尝试了所有可能的博客文章,包括:
.NET Framework 1.1 on IIS 7using dot net 1.1 on IIS 7.5 (windows 7 - 32 bit)http://blogs.iis.net/bills/archive/2008/06/02 /installing-asp-net-1-1-with-iis7-on-vista-and-windows-2008.aspx

还有很多谷歌搜索。但没有任何效果。我在这里做错了吗?

我正确安装了框架,也按照提示重新启动了几次。但是 .Net Framework 1.1 根本没有作为下拉列表中的选项列出。

这是屏幕截图。

在此处输入图像描述

第一部分: ISAPI 和 CGI​​ 限制:正确显示 dll。
第二部分:即使在应用程序池中,ASP.NET 1.1 也是按照我遵循的步骤创建的,但框架版本选择不包含 1.1

这是我的 %windir% 的屏幕截图

在此处输入图像描述

任何帮助是极大的赞赏。

更新

我可以设置代码库,但现在这是一个新问题。尝试从 VS 2010 调试时,收到以下消息。任何的想法?

IDE:VS 2010 专业版

IIS:7.5

在此处输入图像描述

好的。经过长时间的努力,我在旧 XP 机器上安装了 VS 2010,并在那里自己重新构建了应用程序,然后将源代码移回 Windows 7。不再使用 Framework 1.1。它现在映射到 4.0(VS 项目转换)

安装了调试诊断并最终导致了此消息。

在此处输入图像描述

0 投票
1 回答
2214 浏览

heroku - 如何在 Heroku 上将 rake 任务作为工作进程运行?

假设我已将 Heroku 应用程序扩展为 1 个工作进程,但是如何指定具有特定名称的 rake 任务应作为工作进程运行?