问题标签 [w3wp]

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 回答
1245 浏览

visual-studio - 调试时可以告诉 w3wp.exe 的应用程序池名称的 Visual Studio 插件

是否有任何 Visual Studio 插件可以在使用“附加到进程...”调试这些 w3wp 进程时显示关联的应用程序池名称?

通常我必须在调试之前执行以下步骤:

c:>\Windows\system32\inetsrv\appcmd list wps

然后我获取要调试的应用程序池的进程 ID,然后将其附加到“附加到进程”窗口中。

我觉得如果有一个插件可以自动做到这一点会很高兴,但谷歌搜索后没有找到任何这样的东西。

0 投票
2 回答
3958 浏览

asp.net-mvc - 初始化集合时 W3WP 崩溃

我创建了一个 ASP.NET MVC 应用程序,它有一个附加到PreApplicationStartMethodAttribute的初始化程序。初始化时,将实例化一个集合,该集合实现了我定义的接口。当我实例化此集合时,w3wp.exe 崩溃,事件日志中出现以下两个难以理解的条目:

和:

如果我删除集合的实例化,应用程序将正常启动。如果我离开实例化,w3wp 会崩溃。如果我修改接口,w3wp 仍然崩溃。我已经尝试了所有我能想出的关于保持实例化但以不同方式做其他事情的主题的变体,但 w3wp 仍然崩溃。

我最大的问题是我完全不知道为什么 w3wp 会崩溃。这不是 StackOverflowException 或任何类似的具体东西,我得到的只是上面引用的不智能的垃圾。

我尝试使用DebugDiagIISState来调试 w3wp 进程,但 DebugDiag 仅可用于 x64 中的转储后分析(我在 Windows 7 x64 上运行,因此 w3wp 进程是 64 位的)并且 IISStat 说当我尝试运行它时:

我已经仔细检查了 10 次我的 w3wp 进程的进程 ID 是否正确。我怀疑 IISState 也只能调试 x86 进程。在应用程序的任何地方设置断点绝对没有任何作用。一旦请求从浏览器到达 IIS,断点就不会被命中,w3wp 就会崩溃。在 Visual Studio 2010 中使用 F5 启动应用程序或启动另一个应用程序以启动并运行 w3wp 进程,然后将 VS2010 调试器附加到它,然后访问出现故障的应用程序没有帮助。

我还尝试按照KB-911816中的说明添加 HTTP 模块,并将其添加到我的web.config文件中:

不用说,这完全没有区别。所以我无法调试 w3wp 进程,无法从中提取任何信息并完成垃圾转储到我的事件日志中。如果有人对如何调试此问题有任何想法,请告诉我!

0 投票
1 回答
6410 浏览

.net - w3wp.exe 在 web 服务中处理后保持文件锁定

我有一个网络服务,我注意到 wwwroot 文件夹中的一些 dll 在执行网络服务后会被记录下来。

重启电脑后,问题解决。

我的代码中可以有一些可以释放 dll 的东西吗?

0 投票
1 回答
1967 浏览

c# - 使用 perfmon 记录应用程序池的内存使用情况

我正在尝试使用 perfmon 审核应用程序的内存使用情况。默认情况下,perfmon 中的应用程序池进程看起来像 w3wp.exe #1、w3wp.exe #2... Microsoft 有一篇知识库文章http://support.microsoft.com/default.aspx?scid=kb;EN-US ;281884 显示如何将 PID 与进程相关联。但是当应用程序池被回收时,PID 会发生变化。

是否可以为每个应用程序池分配静态 PID,这些应用程序池在回收后永远不会改变?还有其他方法可以将应用程序池名称与 perfmon 中的进程相关联。我正在尝试为每个应用程序池记录进程/工作集(内存)。

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 投票
9 回答
43361 浏览

.net - 无法将调试器附加到 w3wp

我正在调试ASP.NET应用程序,但有时w3wpVisual Studio进程列表(菜单Debug -> Attach to Process...:)和task manager. 我选择了“ Show processes from all users”和“ Show processes in all sessions”复选框。当从 运行项目时localhost,在发生未经处理的异常后,调试器将附加到 w3wp(我无法进入代码为时已晚)!

为什么我有时看不到 w3wp?

0 投票
4 回答
17932 浏览

iis - IIS7:错误的应用程序 w3wp.exe,这些崩溃的根本原因是什么?

我们的网站在 .NET 中,但其中也包含一些旧的 ASP 和 32 位库。它已经工作了一段时间(2年)。但是在过去的一个月里,我们在 IIS7 服务器上看到了以下错误,我们无法追踪和修复:

“故障应用程序 w3wp.exe,版本 7.0.6001.18000,时间戳 0x47919413,故障模块 kernel32.dll,版本 6.0.6001.18215,时间戳 0x4995344f,异常代码 0xe053534f,故障偏移量 0x0002f328,进程 ID 0x%9,应用程序启动时间 0%x 10。”

我们能够重现错误:

  • 我们的 .ASPX 页面之一开始加载、执行代码和查询(我们在整个页面上都有 response.flush() 以跟踪代码中断的位置),然后它突然停止并且我们在 IIS 中收到上述错误。

  • 页面停止加载,并且没有 response.flush(),它不会重定向到我们的 error.aspx 页面(在 web.config 中配置)

  • 错误不会一直发生。有时,它连续发生 3 次,然后在正确重定向到 error.aspx 的情况下不间断地工作 15 分钟。

  • 我们得到的错误是一个经典的错误:“BOF 或 EOF 为 True,或者当前记录已被删除。”

  • 发生错误时,页面会挂起,并且来自任何浏览器的同一台计算机上的所有其他会话也会挂起网页(顺便说一句,我们在测试时只允许 1 个工作进程)。从其他计算机上,该站点加载正常。

  • 我可以回收应用程序池,杀死 w3wp.exe,重新启动 IIS。什么都不会。再次成功加载页面的唯一方法是重新启动处理我们的会话状态的 MS SQL。我不知道为什么会这样,但我们猜测用户浏览器上的会话 Cookie 指向一个未正确终止的线程(由于上述崩溃)并且 IIS 正在等待它终止以处理更多代码(? )。如果有人可以更好地解释这一点,那将非常有帮助。我们可以设置一个超时来“终止”线程吗?它是与 MS SQL 相关的问题吗?

我还查看了私有和虚拟内存的使用情况,因为我认为我们的代码不是最有效的,而且我确信我们还有剩余的内存泄漏。然而,即使私有内存和虚拟内存都非常低(每个都低于 100MB),我还是看到了页面崩溃。

我已经使用了 Debug Diag 和 WinDbg,如下所示:http: //blogs.msdn.com/b/tess/archive/2009/03/20/debugging-a-net-crash-with-rules-in-debug-diag .aspx,但我们无法使 windbg 工作,这是我们目前正在尝试做的事情。

如果有人可以帮助我们或为我们指明正确的方向,那就太好了,谢谢。

0 投票
2 回答
824 浏览

.net - 使用 mdbg 附加到 w3wp

我正在尝试使用命令行托管调试器(mdbg)附加到 w3wp 进程。我无法使用“a”命令在进程列表中看到该进程。

我确信问题在于 w3wp 进程正在 LocalSystem 帐户下的另一个会话中运行,并且找不到有关如何使用 mdbg 附加到这些类型的进程的任何文档。

可能吗?

0 投票
1 回答
353 浏览

c# - 在 w3wp 进程中峰值 cpu 的奇怪问题

我遇到了最奇怪的问题...我有一个单轨网站(一个.NET 解决方案,类似于 ASP.NET MVC).. 在其中一个页面上有一个保存按钮。单击保存按钮时,它会执行一些代码将对象保存到数据库,然后重定向到另一个页面。但是,它所做的是在您单击保存按钮后立即执行所有保存代码,然后它会在那里停留一段时间,然后重定向到另一个页面并执行其代码。这里有一些关于这种情况的事实,这使得它特别奇怪。

  1. 每次您完成单击保存并等待它完成和重定向的过程时,它都会比您上次尝试的时间长 2-4 秒。所以第一次需要 2 秒,然后可能是 5 秒,然后是 8 秒,等等......
  2. 如果您回收应用程序池,它会使其再次快速运行,但随后事实 #1 开始发挥作用,并且执行次数越多,它就会变得越慢。
  3. 我添加了日志,它在 1 毫秒内执行保存和重定向代码,然后等待一段时间,然后快速执行新页面的代码。
  4. 我尝试将其更改为重定向到 google.com,但它仍然以这种方式运行。
  5. 我尝试让它根本不重定向,只是在保存后再次提供现有页面,它仍然以这种方式运行。
  6. 每次单击保存时,它都会使 CPU 达到峰值(特别是 w3wp 进程。)
  7. 其他页面不这样做,即使是其他保存方法。
  8. 注释掉保存到数据库中的代码可以使其正常工作,无需等待。

那么有没有人知道会导致这种情况的原因是什么?保存代码使用 Active Record 和 NHibernate。代码本身运行得非常快,就像我说的不到 1 毫秒,但似乎在代码完成执行后异步发生了一些事情,使它挂了很长时间..

任何想法将不胜感激,代码位于http://pastebin.com/XGLAWPgK

0 投票
1 回答
80769 浏览

debugging - 错误:找不到符号文件。windbg.exe

我从http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx下载了符号 包(Windows 7 RTM x86 零售符号,所有语言),但它仍然给我同样的错误!

完成 .sympath 但仍然无法正常工作

.sympath C:\inetpub\wwwroot\ProductsService\bin\ProductsEntityModel.pdb;srv c:\Symbols http://msdl.microsoft.com/download/symbols

我错过了什么吗?任何帮助都感激不尽。谢谢