为应用程序池“XXX”提供服务的进程在与 Window

  • A+
所属分类:日照网站建设

服务器环境Windows server2012 iis7.5
程序池:.net 4.0 集成
服务器上的应用平常偶尔会出现如下错误:
为应用程序池“XXX”提供服务的进程在与Windows Process Activation Service通信时出现严重错误,进程ID为“2896”。数据字段包含错误号。
为应用程序池“XXX”提供服务的进程在与 Window
为应用程序池“XXX”提供服务的进程在与 Window
为应用程序池“XXX”提供服务的进程在与 Window

在访问量非常高的情况下,错误频繁发生,会造成应用程序池自动关闭,503错误,基本程序废掉。
折腾几个月了,网上找了若干的解决方案都能够解决问题,
关键同一个iis上其他应用从来没出现这个问题,

解决办法一

这个是windows的安全特性.一些核心系统组件只能允许本地帐号,TrustedInstaller有完全控制权限,而不是本地管理员组

要在Windows  上修改 “IIS Admin Service” ,你需要授予本地管理员组有注册表权限:

1.在组件管理器中查到IIS的appid

2.使用regedit,定位到HKEY_CLASSES_ROOT\AppID\{刚查到的ID}”

3.右键点击{刚查到的ID},选权限

4.在权限设置窗口中点高级,选择所有者标签,选中administrators为所有者

5.授予administrators组有读/写等所有权 注意:务必不要修改TrustedInstaller的权限

对“IIS Admin Service”服务,添加AUTHORITY\NETWORK SERVICE用户的启动权限。请通过以下步骤解决此权限问题:

1. 在系统“运行”里面输入“dcomcnfg”,依次点开“组件服务”,“计算机”,“我的电脑”,“DCOM配置”,查找到我们需要的“IIS Admin Service”服务;

2. 右键点击该服务,选择“属性”,进入“安全”菜单,在“启动和激活权限”中编辑“自定义”;

3. 添加NT AUTHORITY\NETWORK SERVICE用户的启动权限。给该帐号赋予"本地启动"和"本地激活"的权限。

4. 重新启动服务器。

需要注意几点

1、先找到应用程序对应的APPID,下图画圈的地方。

为应用程序池“XXX”提供服务的进程在与 Window

 

2、找到注册表对应的位置HKEY_CLASSES_ROOT/APPID。其实很好找,我还搜索了半天,搞的完全乱了。

方法为:开始——运行,输入“regedit” 打开注册表,展开第一项就行

为应用程序池“XXX”提供服务的进程在与 Window

找到APPID,展开

为应用程序池“XXX”提供服务的进程在与 Window

根据刚刚在“组件服务”里面看到的appid,去下面找到对应的id就行了

为应用程序池“XXX”提供服务的进程在与 Window

 

3、修改注册表权限。这个就简单了,在左侧树上——右键——权限

为应用程序池“XXX”提供服务的进程在与 Window

要修改所有者,不然无法直接修改权限

为应用程序池“XXX”提供服务的进程在与 Window

把所有者给administrators组,确定就行了

为应用程序池“XXX”提供服务的进程在与 Window

 

4、重新打开“组件服务”就OK了。  根据上面步骤来不会有错,后面的事情……   添加权限,不说了。

解决办法二

1. 将应用程序池设置为 经典 Classic 模式(如果是纯.NET应用,此步骤可以不做)

2. 启用应用程序池的32位支持

为应用程序池“XXX”提供服务的进程在与 Window

解决办法三

临时补救该错误的一个方法为,调整应用程序池“服务不可用”响应类型为TcpLevel,这样好歹应用程序池不会挂了,但问题依旧存在。

为应用程序池“XXX”提供服务的进程在与 Window

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin