问题标签 [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 投票
1 回答
7727 浏览

asp.net - IIS Web Garden 中的单例对象

我在 asp.net 应用程序中有很多 Singleton 实现,并且出于某些性能原因想将我的应用程序移动到 IIS Web Garden 环境。

CMIIW,迁移到具有n 个工作进程的 IIS Web Garden,每个工作进程中将创建一个单例对象,这使得它不再是单个对象,因为n > 1。

我可以在 IIS Web Garden 中再次制作所有这些单例对象吗?

0 投票
2 回答
2070 浏览

asp.net - 在 VS 中附加到工作进程的更快方法

我正在使用 VS 2010。在 VS 2010 中,当您想通过 IIS(而不是 VS 内置 Web 服务器)测试本地 IIS 站点时,现在附加到工作进程会更加痛苦。

这更痛苦,因为现在当您通过 Debug Menu | 选择工作进程 () 时 附加到进程 | w3wp.exe 它会弹出一个附加提示,询问您是否确定要执行此操作。

甚至在此之前,附加到以前版本的 VS 中的过程也是非常痛苦的。我必须每天这样做 200 次,这浪费了我很多时间,因为需要 5-10 秒才能点击并执行此操作。

现在,如果您有 2 个不同的工作进程正在运行,那么我可以看到需要选择。但在此之前,只是进入那个附加屏幕简直是痛苦的。

任何人都知道除了附加到进程对话框之外的快捷方式或更快的方法,以便附加到 VS 中的工作进程?

我不明白为什么微软没有添加一个漂亮的工具栏图标或让你直接跳到那个附加到对话框屏幕的东西,甚至更好的是你可以指定只显示工作进程作为一个选项,这可以让我省心筛选该列表的时间日志,即使它已经按字母顺序排列。我仍然需要滚动才能找到它。

无论如何,它现在已经成为一个巨大的烦恼......我真的厌倦了每次都让依恋进入那个过程的漫长道路。

0 投票
0 回答
438 浏览

c# - C# Worker 进程花园框架

情况就是这样,我有一个使 Internet Explorer 自动化的工作进程(通过 AxSHDocVw)。该工作进程通过 OS shell 上的自定义 Windows 服务启动。我需要在这些工作进程中的 4-8 个之间运行,以及时处理每批工作。我真的不想在每次有新工作时都拆除并重新创建这些进程,因为启动它们然后加载 IE 会产生延迟。

我想做的是构建一个托管进程花园,我的服务可以在其中通过 WCF 管道将工作发送到预加载的工作进程。

我的担忧是:

  • 当 LOH 超过某个阈值时处理回收
  • 无需任意超时检查即可检测工作进程是否冻结或卡住

我的问题是,是否有任何好的开源框架或工具已经完成了我在这里所追求的全部或大部分工作?

0 投票
1 回答
561 浏览

asp.net - 外部引用会减慢我的 ASP.NET 应用程序的速度吗?(VS:添加参考对话框)

我注意到随着我的网站变得越来越大,我的笔记本电脑显示我的页面所花费的时间比说一个引用最少的新项目要长得多。

我认为有两个变量会影响 ASP.NET 的预热时间:

  • 外部参考的数量
  • new()工作进程为每个工作进程启动每个实例所需的时间
  • WCF 对象的额外时间,因为 ServiceHost 可能位于外部 DLL 中

首先,在考虑 ASP.NET 启动时间时,这些变量是否正确?

接下来,web.config 似乎可以调度其他对象以用于某些文件类型(*.svc、*.aspx、Windows Identity Foundation (WIF) 等)。这也可能导致 ASP.NET 延迟。

最后,我的项目被创建为“网络项目”而不是“网站”。不确定这是否有影响。

我的理论是否充满漏洞,或者我可以做些什么来使旧笔记本电脑的开发变得更好?

0 投票
2 回答
959 浏览

asp.net - Prevent IIS from reusing worker processes for separate ASP.Net AppDomains

When IIS restarts an ASP.Net (2.0) web application, it can either:

  • Recycle the AppDomain: Unload the AppDomain and load a new AppDomain on the same process (e.g. when HttpRuntime.UnloadAppDomain() is called, when web.config is changed).
  • Recycle the process: unload the AppDomain and load a new one on a new process (e.g. when invoking Recycle command on an AppPool via inetmgr, or when memory limit is reached).

Due to some internal reasons (trouble with legacy native code we depend upon), we cannot allow the first option. We just can't load the application twice on the same process.

Can IIS be somehow told to never allow worker process reuse?

I've tried preventing it myself by tracking whether an application has already started on a process once using a Mutex, and if so - throwing an exception during Application_Start()); I've also tried terminating the process by calling Environment.Exit() during Application_End(). The problem with both methods is that it causes any requests that arrive during Application_End or Application_Start to fail (unlike a manual process recycle, which fails absolutely no requests because they are redirected to the new process right away).

0 投票
1 回答
2150 浏览

c# - 以编程方式查找 ASP.NET 工作进程和应用程序域上次启动的时间?

在 ASP.NET 中:

  1. 我如何知道 ASP.NET 工作进程上次重新启动的时间?

  2. 在 ASP.NET 中,如何判断应用程序域上次回收的时间?

0 投票
1 回答
2122 浏览

c# - 回收Worker进程对WCF服务的影响

我想知道回收工作进程(IIS V 6.0)对 IIS 中托管的 WCF 服务有什么影响(在性能、可用​​性等方面),我还想知道是否有关于如何配置的最佳实践回收时间或请求数。

我还想知道被回收的工作进程是否与它的实例化配置设置为单一的服务有关,是否必须在每个工作进程回收后再次实例化它?

谢谢!

0 投票
1 回答
2982 浏览

multithreading - TPL 中的最大任务?

我想在 Windows Azure 的 Worker 进程中使用 TPL。我希望在队列中添加一个 IJob,它有一个 Run 方法,因此工作人员将包括:

loop get item off queue 使用 TPL 调用 IJob.Run,​​这是一个异步调用

但我有点担心我可以添加到 TPL 的最大项目?如果需要,我很乐意构建自己的某种 TPL 池,只需检查它的功能即可。

干杯,阿什。

0 投票
5 回答
4995 浏览

asp.net - ASP.NET 中的无缝部署(IIS 在新的工作进程准备好之前杀死工作进程)

我正在尝试将 .NET Web 应用程序部署到 IIS (7.5),而不会给用户带来任何麻烦。我已经确定禁用重叠回收是错误的,但我每次仍然遇到同样的问题。

每次我为站点上传新的二进制文件时,IIS 都会在工作进程启动新进程之前终止它。因此,每次我上传新的二进制文件时,用户都会收到以下错误消息:

“/”应用程序中的服务器错误。无法加载文件或程序集“MyApplicationWeb”或其依赖项之一。该进程无法访问该文件,因为它正被另一个进程使用。(来自 HRESULT 的异常:0x80070020)

我不知道如何无缝地做到这一点。现在我只是上传二进制文件;但是当上传发生(或本地副本)时,它会给出上面引用的行为。我也尝试使用网络花园,但结果相同。

我不是在寻找什么:

  • 如何使用外部负载平衡器解决它(这是一个功能性解决方案,但它对于少数服务器来说是一个糟糕的解决方案,如果只有一个服务器,它根本无法工作)
  • 如何在自定义错误页面中通过刷新创建 hack-around(因为它有一些明显的问题,但更重要的是根本无法使用 Web 服务/ajax)。

我真的认为这应该是可行的http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/24e3c22e-79a9-4f07-a407-dbd0e7f35432.mspx?mfr=true

更新:在上面的文章中,他们说:

但是,由于关闭或启动的关闭超时值是可配置的,因此如果工作进程未在时间限制内完成对现有请求的服务,则可以在它仍在为请求提供服务时终止它。

我不知道在哪里可以找到这个值,也不知道它是什么默认值。如果它少于几秒钟,它可能会解释我的结果。

附言。我将它发布在 SO 而不是 SF/Webmasters 等上,因为我认为这种知识对于那些不积极参与开发的人来说可能是最少的,我希望这没关系。

0 投票
3 回答
32573 浏览

asp.net - IIS 7工作进程瓶颈,应用程序池ASP.NET 3.5 + 2.0下大量等待请求

我正在使用 ASP.NET 2.0、.NET 2.0 Framework 和 IIS 7。我看到“工作进程”选项下出现大量“请求”队列。记录的状态似乎比其他任何东西都重要Authenticate RequestExecute Request Handles

aspnet.configC:\Windows\Microsoft.NET\Framework64\v2.0.50727(32 位路径和 64 位路径)中进行了修改,包括:

machine.configC:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG(32 位和 64 位路径)中进行了修改,包括:

我仍然得到这个问题。

该问题表现为工作进程队列中的大量请求。

出现此问题时,与网站的当前连接数显示为 500。如果没有发生此问题,我认为我没有看到超过 500 个并发连接。

Web 应用程序会随着请求阻塞而变慢。

随着负载在两个池之间分散,刷新应用程序池会解决一段时间(如预期的那样)。

有问题的应用程序池 FIXED REQUEST 已设置为刷新 50000。

注意:.NET 3.5 框架使用 2.0 框架 appnet 和机器配置文件,我相信。

服务器资源(CPU、RAM)没有被充分利用。