Web请求时应用程序池停止运行。

7
我有一个网站已经运行了几个月,但今天早上开始出现503服务不可用错误。在检查IIS后,我发现应用程序池被停止了。由于之前曾遇到过问题,我怀疑是WebRequest引起的问题。因此,我注释掉了站点的WebRequest部分,然后你猜怎么着,应用程序池不再被禁用了。我怀疑又有另一个安全更新,但我无法找出需要做什么来让WebRequest再次工作。
我已经尝试过以下方法: 1)aspnet_regiis -u 然后 -i 2)重新安装 .net framework
更多信息:我使用NetworkService帐户为asp.net v4.0应用程序池提供Windows身份验证。
事件日志中的错误如下: "HipIISEngineStub.dll无法加载。数据是错误的。"
var request = (HttpWebRequest)WebRequest.Create(path1);
request.Credentials = CredentialCache.DefaultCredentials;
request.PreAuthenticate = true;            

var getResponse = new Func<WebRequest, WebResponse>(req => req.GetResponse());

try
{
    return getResponse(request).GetResponseStream();
}

在我们的情况下,原始消息是: “工作进程'%2'中协议'%4'的侦听器通道为服务应用程序池'%1'报告了侦听器通道故障。数据字段包含错误号。” 事件ID:5139 我们花了几个小时才发现McAffee在卸载后留下了一些dll。 然后我们偶然在IIS管理控制台中找到了HIPS模块。 - Puterdo Borato
1个回答

21

这与 McAfee 主机入侵防范有关。可能是您的 McAfee 许可证已经过期,或者您使用的是需要更新的旧版本。检查一下您的 McAfee 安装情况,也许需要重新安装它。

如果您最近卸载了 McAfee,或者以某种方式更改了安装,那么可能在您的 ISAPI 设置中仍然有对它的引用。尝试从 applicationHost.config 中删除对 MfeEngine 的引用:

https://kc.mcafee.com/corporate/index?page=content&id=KB72677&actp=LIST

以下是该页面的引用(我强调)

  • 以管理员身份启动记事本!
  • 导航至:%windir%\system32\inetsrv\config
  • 在 Notepad 中打开文件applicationHost.config进行编辑。
  • 编辑 globalModules 部分并删除以下行:
<add name="MfeEngine" image="%windir%\System32\inetsrv\HipIISEngineStub.dll" />
  • 编辑模块部分并删除以下行:
<add name="MfeEngine" />
  • 编辑完applicationHost.config文件后,保存该文件并使用命令或重新启动系统来重启IIS服务器。

2
非常感谢!我一定会告诉支持团队,因为我相信还有其他人也遇到了同样的问题。 - cvanniekerk
谢谢你,我已经追寻这个问题很久了。 - dkleehammer
2
除非我以管理员身份打开记事本编辑文件,否则它在我的计算机上无法正常工作。 - dwbartz
2
@AndersTornblad 是的,一开始我也顽固地忽略了它。我相信我不会是唯一一个这样做的人。 - dwbartz
直到我以管理员权限在记事本中打开它,它才对我起作用。 - Abhishek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接