当前位置:文档之家› iis7.5应用程序池模板永久性缓存初始化失败解决方法

iis7.5应用程序池模板永久性缓存初始化失败解决方法

iis7.5应用程序池模板永久性缓存初始化失败解决方法
iis7.5应用程序池模板永久性缓存初始化失败解决方法

错误:应用程序池“AppPoolName”的模板永久性缓存初始化失败,这是由以下原因所导致:无法创建应用程序池的磁盘缓存子目录。数据可能包含额外的错误代码

在一次重启IIS服务的过程中,突然无法启动IIS服务,打开Internet 信息服务(IIS)管理器也不显示站点,在系统日志中看到错误:

===========================================

来源:Active Server Pages

事件ID:5

错误:应用程序池“AppPoolName”的模板永久性缓存初始化失败,这是由以下原因所导致:无法创建应用程序池的磁盘缓存子目录。数据可能包含额外的错误代码:

===========================================

于是在网上搜索了一套堆资料,最后查到微软官方的解决方法如下:(此方法试过不行的用户注意最后的讲解)

手动设置文件夹的权限

1.单击“开始”,再单击“Windows 资源管理器”,双击“我的电脑”,再双击系统驱动

器(通常为驱动器C),然后双击“WINDOWS”或“WINNT”。

2.双击“Help”,双击“iisHelp”,右键单击“common”,然后单击“共享和安全”。

3.单击“安全”,然后单击“添加”,键入IIS_WPG,然后单击“确定”。

4.选中“IIS_WPG”,单击选中以下复选框,然后单击“确定”:

o读取和执行

o列出文件夹内容

o读取

5.打开systemroot\system32\inetsrv\ASP Compiled Templates 文件夹的“共

享和安全”对话框,然后授予IIS_WPG 组“完全控制”权限。

6.对systemroot\IIS Temporary Compressed Files 文件夹重复步骤5。

要手动设置NT AUTHORITY\NETWORK SERVICE 的权限,请按照下列步骤操作:

1.单击“开始”,单击“运行”,键入%systemroot%\Help\iisHelp,然后单击“确定”。

2.右键单击“Common”文件夹,然后单击“共享和安全”。

3.在“安全”选项卡上,单击“添加”,键入NETWORK SERVICE,然后单击“确定”。

4.单击“NETWORK SERVICE”,单击以选中“允许”下的以下复选框,然后单击“确定”:

o读取和执行

o列出文件夹内容

o读取

5.单击“开始”,单击“运行”,键入%systemroot%\system32\inetsrv,然后单击

“确定”。

6.右键单击“ASP Compiled Templates”文件夹,然后单击“共享和安全”。

7.在“安全”选项卡上,单击“添加”,键入NETWORK SERVICE,然后单击“确定”。

8.单击“NETWORK SERVICE”,单击以选中“允许”下的“完全控制”复选框,然后单

击“确定”

9.单击“开始”,单击“运行”,键入%systemroot%,然后单击“确定”。

10.右键单击“IIS Temporary Compressed”文件夹,然后单击“共享和安全”。

11.在“安全”选项卡上,单击“添加”,键入NETWORK SERVICE,然后单击“确定”。

12.单击“NETWORK SERVICE”,单击以选中“允许”下的“完全控制”复选框,然后单

击“确定”

完成这些步骤后,请重新启动IIS Admin 服务。为此,请按照下列步骤操作:

1.单击“开始”,单击“运行”,键入Services.msc,然后单击“确定”。

2.右键单击“IIS Admin”,然后单击“重新启动”。

Microsoft 已经确认这是Microsoft Windows Server 2003 中存在的问题。

============================================= ===

本人在按该方法处理后,问题依然出现,后来,本人怀疑是不是IIS的配置文件出现损坏呢?于是打开目录:C:\WINDOWS\system32\inetsrv找到IIS配置文件MetaBase.xml,改成其它名称后,从C:\WINDOWS\system32\inetsrv\History 自动备份的配置文件中找到个近期的MetaBase_0000000673_0000000000.xml文件改名成MetaBase.xml,重启IIS服务,解决问题!

什么是IIS应用程序池以及应用程序池详解

什么是应用程序池呢?这是微软的一个全新概念:应用程序池是将一个或多个应用程序链接到一个或多个 工作进程集合的配置。因为应用程序池中的应用程序与其他应用程序被工作进程边界分隔,所以某个应用程序池中的应用程序不会受到其他应用程序池中应用程序所产生的问题的影响。 Windows 2003同时支持两种工作模式,默认为ISS 6.0工作进程隔离模式。工作进程隔离模式防 止一个应用程序或站点停止了而影响另一个应用程序或站点,大大增强了IIS的可靠性。那么如何设置两 种工作模式呢? 启动IIS管理器,右击网站,选择“属性”,打开属性对话框(图1)。 在IIS 6.0工作进程隔离模式下,所有的应用程序代码都在隔离环境中运行,它们是如何进行隔离的呢?Windows 2003新增了应用程序池,工作进程隔离模式允许客户创建多个应用程序池,每个应用程序池都 可以有不同的配置。因为这些应用程序池直接从内核(而非WWW 服务)接收它们的请求,所以性能和可靠性得到了增强。要隔离运行在同一台计算机上但属于不同网站的Web应用程序,需要为每个网站创建单独的应用程序池。 创建应用程序池 在IIS管理器中,打开本地计算机,右键单击“应用程序池”,选择新建“应用程序池” (必须在工作 进程隔离模式下才能建立应用程序池)。“应用程序池名称”框中,输入新的应用程序池名称。如果在“应 用程序池ID”框中出现的ID (如:AppPool #1)不是您想要的,可进行重命名。如果您单击了“将现有应用程序池作为模板”,请在“应用程序池名称”框中右键单击想要用来作为模板的应用程序池。最后单击[确定]。

指派应用程序池 在IIS 管理器中,右键单击您要为其指派应用程序池的应用程序,然后单击“属性”。单击“主目录”选项卡,确认您正在指派的目录或虚拟目录的“应用程序名”是否已被填写。如果“应用程序名”框尚未被填写,请单击“创建”,然后输入名称。 在“应用程序池”列表框中,选择您想要为其指派的应用程序池的名称。最后单击[确定]。 一起来看看有关应用程序池的一些问题。应用程序池的“属性”对话框有四页——回收,性能,运行状况,标识,如图六所示。在这些选项页中,最引人注目的恐怕就是“回收”页,使用该选项页可以管理工作进程 的回收。在工作进程隔离模式中,IIS可以配置成定期重新启动应用程序池中的工作进程,从而更好地管理那些有错误的工作进程。这确保了池中的应用程序运行正常,并且可以恢复丢失的系统资源。为了回收工 作进程,失败工作进程接收请求的能力将被限制,直到它处理完存储在请求队列中的所有剩余请求。为了 排出当前请求,可以给予进程配置限制。同一命名空间组的替换工作进程在旧的工作进程停止前启动,从 而防止服务中断。旧的进程完成其未决的请求,然后正常关闭,或者如果在达到了配置的时间限制、请求数、设置的时间计划,或当达到指定的内存用量限制后仍没有关闭,则明确地终止进程。默认情况下,应 用程序池每隔1740分钟(29小时)回收一次。 W3SVC根据“运行状况”页的选项来判断应用程序池运行是否正常,包括:每隔指定的时间Ping工作 进程,时间按秒计,默认值30秒启动时间限制(工作进程必须在指定的时间内开始)关闭时间限制(工作进程必须在指定的时间内关闭)是否启动快速失败保护(如果在指定的时间段内一定数目的工作进程发生 失败,则禁用应用程序池)。另外,ISAPI应用程序(包括https://www.doczj.com/doc/0e18790225.html,和asp.dll)可以声明自己不再适合提供服务,要求回收。 默认情况下,当IIS 6.0回收一个池时,它会使用一种称为overlapped recycle的回收技术。在这种回收模式下,失败的工作进程仍会保持运行状态,同时创建一个新的工作进程。IIS 6.0把新传入的请求传递给新的工作进程,但不拆除老的工作进程,直至老的工作进程处理完它队列中的请求,或者遇到超时错误。在此期间,TCP/IP连接不会丢失,因为有http.sys保持着连接的有效性。当失败的工作进程超时出错时,下一个请求传递给工作进程的请求是新的请求,因此原来保存在进程中的会话信息就会丢失。所有这类回 收操作都自动进行,无需管理员干预,而且在大多数情况下,不会造成明显的服务中断现象。如有必要, 可以将配置数据属性LogEventOnRecycle的值设置为1,指示W3SVC执行回收操作时生成一条事件日志 记录。 对于那些不能以多个实例运行的应用程序,overlapped recycle回收技术可能引起问题。如果遇到这类问题,可以将配置数据属性DissallowOverlappingRotation的值设置成 True(1),关闭某个应用程序池回收操作时的进程“重叠”现象。另外,对于失败的工作进程,有时我们可能不想将它拆除,仍旧保留该进程,以便检测和寻找发生问题的根源,这时可以将配置数据属性OrphanActionExe设置成执行文件的名字,使得工作进程成为“孤儿”时执行文件仍保持运行状态。 另一个与应用程序池有关的特性是,IIS 6.0允许将应用程序池配置成一个Web园(Web Garde n)。要理解Web园的概念,可以设想这样一种情形:假设有一个IIS 5.0服务器和三个Web网站,每一个Web 网站运行着相同的应用程序,如果IIS 5.0能够自动按照圆形循环的模式将请求依次发送给这些功能上等价、实际上分离的Web网站,将负载分离到三个不同的进程,就可以构成一个小型的Web农场(Web Farm)——这就是Web园。

企业危废暂存、处理、处置常见问题与对策!

企业危废暂存、处理、处置常见问题与对策! 一、危险废物是什么,其有什么特别之处 国家危险废物名录(2016年新版)或根据国家规定的危险废物鉴定标准和鉴定方法认定的具有危险废物特性的废物。具有腐蚀性、急性毒性、浸出毒性、反应性、污染性一种或几种危险特性的固体废物和液态废物或者是不排除具有危险特性,可能对环境或者人体健康造成有害影响,需要按照危险废物进行管理的固体废物和液态废物都属于危险废物。具体参见08版危废目录与16版危废目录对比。 二、相关法规 《中华人民共和国固体废物污染环境防治法》(2015年修正); 《国家危险废物名录》(2016新版); 《危险废物鉴别标准通则》(2007); 《危险废物经营许可证管理办法》(2013); 《废弃危险化学品污染环境防治办法》(2005); 三、常见问题 1) 危险废物贮存是否规范,不得露天堆放; 2) 危险废物贮存地及包装是否有标识,需要有清楚、正确的标识; 3) 危险废物自建处理装置设施运转是否正常; 4) 部分企业没有危险废物清晰、详细的台账; 5) 是否对危险废物进行有效分类; 6) 是否按时完成危险废物动态管理相关信息的申报和执行联单制度。 四、环保检查啥 检查危废暂存、处理、处置场所是否在自然保护区、风景名胜区、饮用水水源保护区、基本农田保护区和其他需要特别保护的区域内,是否符合相关选址要求,是否符合法律法规等。 检查排污者是否向江河、胡博、运河、渠道、水库及其最高水位线以下的滩地和岸坡等法律、法规规定禁止倾倒废弃物的地点倾倒固体废物。对于危险废物的贮存、处理处置检查危废暂存场所是否设置了符合环境保护要求的设施有毒有害固体废物等危险废物,应设置专用堆放场地,并必须有防扬散,防流失,防渗漏等防治措施。 固体废物转移: 1)检查固体废物转移的情况

VC2005-应用程序正常初始化失败-0xc0150002

最近几天被这个问题困惑了许久。不禁感叹微软的东东真是越做越烂了,也终于明白了时隔12年大家仍然死守VC6的原因。。 用VC2005编译的程序,编译时没有任何错误,但是运行时就是提示“应用程序正常初始化失败”!!查找了各方面资料,做了各种尝试,网上说什么的都有:有让安装vc2005 sp1补丁的;有让安装vcredist_x86.exe的; 有让把CRT库的dll直接拷贝到程序目录的; 有让清理注册表的;有让装.NetFramework新版本的;有让查manifest的; 结果我尝试了半天,几乎都是浪费时间。上面最后一条说的还算正确,只是作者把事情描述得太繁琐了。。现在把处理的方法说一下,省得大家再走弯路: 1. VC2003、VC2005、VC2008及其后续版本,对底层最基本的CRT、MFC、ATL库都进行了重构,为了避免不同版本的库引起冲突,重构后的库文件一般放在C:\\windows\WinSxS 文件夹中,并用特定的文件夹\文件名称进行标识; 2. 与VC6不同, VC2003、VC2005、VC2008及其后续版本,引入了manifest 清单的概念,即应用程序编译后会同时生成对应的.manifest文件,并将该.manifest 文件作为资源编译到dll或者exe中去。.manifest文件实际上是一个XML格式的文本文件,里面记录了dll或exe中要引用的CRT、MFC、ATL库的版本和名称。VC6编译的应用程序对CRT、MFC、ATL的dll都是直接调用,而VC2003、VC2005、VC2008编译的程序都是先查询编译到资源中的manifest中的记录,然后按照记录提供的版本和名称去搜寻对应的CRT、MFC、ATL库以及随库发布的.manifest文件,搜寻的路径包括当前目录、C:\\windows\WinSxS 等等,如果没有找到对应的库文件,则提示“应用程序正常初始化失败”; 3.因此解决这个问题的办法就是:(a)用文本编辑器打开exe或dll对应的.manifest文件,查看它引用的CRT、MFC、ATL库的版本;或者,用UltraEdit 直接打开exe或者dll,从资源区中找到编译进去的.manifest信息,找到它引用的

修改iis应用程序池标识添加系统用户

修改iis应用程序池标识,添加系统用户 By ynhu33 85076921 通过应用程序池,你可以配置IIS要启动的工作进程数以及这些进程的更多配置细节。对于IIS管理器中配置的所有应用程序池,Web服务器至少启动一个工作进程。在每个工作进程里,可以容纳多种类型的应用程序--从ISAPI DLL到传统的ASP,当然还有https://www.doczj.com/doc/0e18790225.html,。为了管理应用程序池,IIS 6.0管理器包含了一个新的配置结点,它是应用程序池。 一旦创建了应用程序池,就可以在这个池里运行Web应用程序了。前面提到过,现在通过应用程序池来实现对Web应用程序的隔离;因此,配置虚拟目录和网站时,应用程序池的设定取代了原先在IIS 5.x里介绍的隔离模式设置。 你可以用应用程序池实现的一个有用的隔离策略是安全性。对于每个具有特殊安全权限的应用程序,你可以创建一个具有那些权限的单独的Windows用户,并配置应用程序池把该Windows用户作为标识。 你可以选择的预定义账号如下所示。 网络服务。这是一个受限的账号,具有比本地系统账号小很多的权限。这个账号适合需要访问网络且需从其他机器访问的应用程序使用。 本地服务。这个账号的限制比网络服务账号的限制更多,它适合不需要额外网络访问的服务使用。使用这个账号运行的服务没有访问其他网络资源的权限,它们只能够访问本地资源。本地系统。著名的本地系统账号当然仍然存在。不过,我们不再推荐任何类型的Web应用程序使用这个账号,因为它是系统最强大的账号。它可以在本地系统上执行任意活动,所以用该账号运行的系统也可以做这一切。从根本上说,你的策略应该是应用程序总是运行在"最小权限"账号下,也就是说,这个账号不应该有任何应用程序实际不需要的权限。因此,如果某人能够攻破该应用程序,危害将被限制到最小,因为应用程序运行的账号是受限的。

串口通信中接收数据时延迟处理与缓存处理的解决方案(C#)

串口通信中接收数据时延迟处理与缓存处理的解决方案(C#) 利用串口进行通信,当发送方(A)将数据写入串口后,通过无线或有线方式将数据传送给接收方(B),B通过调用串口读方法comm.read(参数)即可将数据读出。原理十分简单,但最近在利用串口处理SM-42无线传输时,数据总是一段一段的传到B,并不能在 comm_DataReceived方法中单纯使用read方法将数据接收完全。我知道用缓存机制,但由于经验少(正在实习),到网上找了找大牛们的方法,并结合自己的理解,发现有两种方法可以处理。 方法一:comm_DataReceived(Comm控件的数据接收方法,当有数据来临时会触发)会创建一个线程(悲哀,因为之前不知道它另辟线程,所以自己编写了一个线程处理函数),因此当串口在等待数据时,不影响主窗体或主线程的操作。所以当数据到来时,可以通过Thread.Sleep(100)让接收函数休息100毫秒,这100毫秒做什么用呢?就是让所有的数据都到达B时再读取,这样就逃避了分批到达的问题。很明显,这是在糊弄。因为万一100毫秒都不够呢?所以,方法二更合适。 代码 1private void comm_DataReceived(object sender, EventArgs e) 2{ 3 Thread.Sleep(100); //等待100毫秒 4int nReviceBytesNum =comm.BytesToRead; ///收到的字节数。 5byte[] ReadBuf = new byte[nReviceBytesNum]; ///定义接收字节数组 6 comm.Read(ReadBuf, 0, nReviceBytesNum); ///接收数据 7}

Visual Studio问题集锦by低调年华,未完待续

问题集锦 vs2013的安装需要网络接入,否则安装后部分功能无法使用! 1.error MSB: 3073,已退出,代码1 解决方法:项目属性,生成事件,后期生成事件,命令行(改为默认即可) 2.VS2010显示行号 解决方法:工具,选项,文本编辑器,C/C++,自动换行,行号。 3.error LNK 1120:无法解析的外部命令 解决方法:这个问题的原因是有头文件,但是找不到实现。 1)只包含了头文件,只有这个函数的声明,没有包含这个函数的实现(实现一般放在cpp 文件中的)。所以只能通过编译,连接不成功。 2)另一个原因是函数的声明和实现都放在头文件中了,一般要把声明放头文件中,实现放在cpp文件中。这样每个#include该头文件的文件都会有一份该函数的实现,连接的时候,连接器不知道连接哪一个实现,于是报错。 4.error LNK 2019:无法解析的外部符号 原因:lib库可能无法匹配,更换lib库即可。 5.关于无法解析的外部命令的所有可能原因 考虑可能的原因 [0]出现无法解析可能是因为lib文件不正确,比如64位的编译配置,结果使用的是32位的lib 包. [1]只写了类声明,但还没有写实现类,造成调用时无法解析 [2]声明和定义没有统一,造成链接不一致,无法解析 [3]没有在项目属性页的链接器的命令行选项加入相应的类包。 [4]没有在c++包含目录和库目录加入相应的类包路径

[5]在测试工程中被测文件目录可能需要包含被测类的cpp定义文件 [6]ICE接口测试时,无法解析可能因为被测文件没有包含进相关的cpp文件,另外,在TestSuite_ProjectRun.h文件中需要包含IProjectRun.h头文件,及相关的头文件(举例)。 [7]import相关的无法解析内容,解决办法是在链接器的依赖项中加入相应的动态库 [8]出现如下错误的原因一般是动态库没有包进来。__imp ProjectRun.obj : error LNK2019: 无法解析的外部符号__imp__StartHistoryLocalModule,该符号在函数"protected: virtual int __thiscall HiRTDB::CProjectRun::DoStart(void)" (?DoStart@CProjectRun@HiRTDB@@MAEHXZ) 中被引用 [9]error LNK2001: 无法解析的外部符号__imp___CrtDbgReportW 工程属性,C/C++,代码生成,运行时库选择MDd, [10]无法解析的外部符号"__declspec(dllimport) public: int __thiscall HiRTDB::CTagTree::GetObjectA(int,struct HiRTDB::SBaseReadProps const &,struct HiRTDB::SBaseReadValues &)" (__imp_?GetObjectA@CTagTree@HiRTDB@@QAEHHABUSBaseReadProps@2@AAUSBaseR eadValues@2@@Z),该符号在函数"public: int __thiscall HiRTDB::CStringImpl::Get(int,struct HiRTDB::SStringReadProps const &,struct HiRTDB::SStringReadValues &)" (?Get@CStringImpl@HiRTDB@@QAEHHABUSStringReadProps@2@AAUSStringReadValues @2@@Z) 中被引用 原因可能是工程配置文件中有多余选项,请参考其他模块的配置选项,不要有多余配置。6.参数basepath不能是相对路径 解决方法:basePath不能是相对路径,在项目->配置属性->调试->中,将命令和工作目录改为绝对路径。这里将其改为默认即可。 7.应用程序无法正常启动,(代码0xc0150002) 解决方法:缺少此应用程序所需动态库的VC++运行库,安装对应的VC++运行库即可。

IIS应用程序池多工作进程设置及Session共享

IIS应用程序池多工作进程设置及Session共享 1 概述 微软的IIS作为Windows平台下https://www.doczj.com/doc/0e18790225.html,网站发布的默认WEB服务器,在性能上提供了比较大的 弹性和可伸缩性,通过应用程序池工作进程数的设置,可以支持从几十到上万并发数量的访问。本文档对相应设置过程进行操作指引,并对设置过程中的注意事项进行重点描述。 2 应用程序池多工作进程设置 根据以往的经验值,在主流的PC-SERVER主机(Xeon E5645 @ 2.4GHz,6核心12线程,32G 内存)上,每个应用程序池的单一工作进程,能够大约承受30-50个左右的并发,如果超出此并发数量,可能会出现IIS无法响应、或响应时间明显变长的问题。通过合理设置应用程序池的最大工作进程数,可显著提高IIS应对高并发的能力,减少网站响应时间。 2.1 设置步骤 1、找到待设置网站对应的应用程序池,如图 1所示: 图 1 找到应用程序池 2、在所选应用程序池上点击右键,选择【高级设置】,如图 2所示: 图 2 高级设置 3、在弹出的【高级设置】窗口中找到【最大工作进程数】,并设置为合理值,如图 3所示: 图 3 设置最大工作进程数 4、点击【确定】按纽保存设置。 2.2 注意事项

图 5 启动服务 4、打开待修改网站主目录下的web.config配置文件,搜索找到“”配置节点,如果不存在配置节点,则在“”节点下新建“”配置节点,并将节点属性修改为: 其中“tcpip=*”后的主机IP地址和端口可根据实际情况修改。修改完后保存配置文件即可。 3.2 注意事项 1、 Session中保存的自定义对象必须显示标记为可序列化“[serializable]”。如果未显示标记为可序列化,则在访问页面时会报错。 2、 StateServer服务器必须为Windows Server操作系统,如Windows Server 2003或Windows Server 2008。

各类型网站-缓存解决方案

门户类随着互联网不断普及和飞速成长,门户网站已经成为网民获取信息的重要通道。每天大量网民点击访问,网站速度和网络稳定等方面面临着严峻挑战: 1、网站运维技术复杂 2、网站影响力大,对网络灾备要求高 3、网络服务众多,传输机制复杂 4、用户众多,分布广泛,网络情况复杂,响应速度要求高 5、易遭受攻击,网站安全性和稳定性要求高 某门户网站高标准规划、高起点建设,以新闻、信息、下载内容为主,文字、图片与视频、音频结合,目前拥有30 多个频道和子网站。随着自身的不断成长,网站也面临了性能和可用性方面的问题和挑战: 一旦IDC 内的服务器停止工作或ISP 服务中断,如何保证网站始终在线?必须通过更快的响应速度来满足客户的需求,如何为客户提供最及时的响应?应用服务器由于服务器硬件的稳定性、流量压力超载、网络攻击等情况,经常会意外宕机,如何保证网络应用的7 ×24 小时持续性服务? 为解决以上问题,该门户网站使用了PowerCDN服务,确保了关键任务应用的快速、安全和容错性运行。无论该网站的客户所处全球位置如何,PowerCDN的Smart DNS都可将他们引导到具有最佳性能的可用PowerCDN节点,页面响应速度明显提升;同时源站隐藏在CDN节点后,大大减少来自互联网上的直接安全威胁;遇到热点事件的突发流量也不必为此单独购置专门的设备。 sns社区类随着越来越多的个人用户参与到互联网内容的管理、维护、存储、上传、分发等价值链条中,互联网逐渐转变成一个分散存储、读与写并存的多中心交互式平台,社会网络(sns)作为Web2.0的典型应用之一更是遍地开花。由于内容的生产者和组织者越来越多和越来越分散,内容的多节点上传几乎与自上而下的下发变得一样普遍,于是本已拥塞不堪的网络带宽更显拥挤,在现有带宽条件下,如何提高网站接入速度和响应速度,进而改善用户体验,真正做到以用户为中心?这是所有sns社区类网站都必须面对并给出满意解答的一道课题。 1、网站交互性超强 2、文件种类和数量多而且复杂 3、安全保密性要求高

iis7.5应用程序池模板永久性缓存初始化失败解决方法

错误:应用程序池“AppPoolName”的模板永久性缓存初始化失败,这是由以下原因所导致:无法创建应用程序池的磁盘缓存子目录。数据可能包含额外的错误代码 在一次重启IIS服务的过程中,突然无法启动IIS服务,打开Internet 信息服务(IIS)管理器也不显示站点,在系统日志中看到错误: =========================================== 来源:Active Server Pages 事件ID:5 错误:应用程序池“AppPoolName”的模板永久性缓存初始化失败,这是由以下原因所导致:无法创建应用程序池的磁盘缓存子目录。数据可能包含额外的错误代码: =========================================== 于是在网上搜索了一套堆资料,最后查到微软官方的解决方法如下:(此方法试过不行的用户注意最后的讲解) 手动设置文件夹的权限 1.单击“开始”,再单击“Windows 资源管理器”,双击“我的电脑”,再双击系统驱动 器(通常为驱动器C),然后双击“WINDOWS”或“WINNT”。 2.双击“Help”,双击“iisHelp”,右键单击“common”,然后单击“共享和安全”。 3.单击“安全”,然后单击“添加”,键入IIS_WPG,然后单击“确定”。 4.选中“IIS_WPG”,单击选中以下复选框,然后单击“确定”: o读取和执行 o列出文件夹内容 o读取 5.打开systemroot\system32\inetsrv\ASP Compiled Templates 文件夹的“共 享和安全”对话框,然后授予IIS_WPG 组“完全控制”权限。 6.对systemroot\IIS Temporary Compressed Files 文件夹重复步骤5。 要手动设置NT AUTHORITY\NETWORK SERVICE 的权限,请按照下列步骤操作: 1.单击“开始”,单击“运行”,键入%systemroot%\Help\iisHelp,然后单击“确定”。 2.右键单击“Common”文件夹,然后单击“共享和安全”。

清理迅雷缓存文件办法

清理迅雷缓存文件办法 批处理脚本如下: @echo off echo 正在清除迅雷缓存文件,请稍等...... del /f /s /q D:\\vod_cache_data\\*.* rd /s /q D:\\vod_cache_data & md D:\\vod_cache_data\\ attrib +h D:\\vod_cache_data echo 清除迅雷缓存文件完成! echo. & pause 将上面这段代码复制下来,到桌面上新建一个“文本文档”,把复制的代码粘贴上去,保存并退出,再将建好的文本文档重命名,把文件的扩展名改成“.bat”(别告诉我这个都有难度),双击运行就OK啦!!! 注:为了防止迅雷看看影视缓存文件占用占用硬盘、频繁读取硬盘避免对硬盘造成不必要的 消耗磨损,以及避免文件后台上传影响网络流畅度,所以推出以下方法来解决以上问题。 方法如下: 将下列代码用记事本保存为bat文件,也就是将其后缀名改为.bat 后双击运行即可!运行后询问是否确认时输入Y并且回车完成免疫。 @echo 正在结束迅雷进程... @taskkill /im Thunder5.exe /f @echo 结速迅雷进程结束... @ping -n 2 127.1>nul @echo ------------D盘------------- @echo 开始删除D盘迅雷看看缓存目录... @D: @echo 切换到D盘根目录... @echo 切换到迅雷看看缓存目录所有文件夹... @echo 开始删除缓存目录... @RMDIR /S/Q vod_cache_data @echo 删除完成.... @echo ------------在E盘请继续------------- @pause @echo 开始删除E盘迅雷看看缓存目录... @E: @echo 切换到E盘根目录... @echo 切换到迅雷看看缓存目录所有文件夹... @echo 开始删除缓存目录... @RMDIR /S/Q vod_cache_data @echo 删除完成.... @echo ------------在F盘请继续------------- @pause

缓存管理需求说明

缓存管理功能需求说明 缓存管理开发背景 缓存管理功能的开发,意在减少系统对数据库的过多访问,通过减少对数据库的访问次数,改用访问内存的方式,提升系统的性能。直接从内存获取数据,较之从数据库获取数据,效率可以得到显著的提升。 系统由于多次查询数据库,消耗大量系统资源,且查询效率可能因为开发者的个人能力导致查询效率不高,或占用过多资源影响系统性能。使用缓存管理,系统只有第一次查询访问数据库,而后皆通过访问内存取得数据,不需要在计较这次查询的SQL是否过于复杂,是否效率低下,直接取得数据返回即可。 第一部分、缓存管理 缓存管理提供了缓存工具类CacheUtils以供开发者对缓存进行自定义开发。如果开发者需要自己开发某功能需要涉及缓存管理则可以借助使用CacheUtils工具类来完成。本地缓存管理和redis 缓存管理的区分在于redis是否正确连接且启动。注意,是正确连接并且启动redis服务器。 关于开发者需要自行开发某功能的缓存管理需要了解CacheUtils怎么使用可以查看《缓存管理开发说明》 本地缓存管理 本地缓存管理是在redis没有正常启动运行的时候系统提供的缓存管理方式。本地缓存管理暂无任何持久化操作。对于缓存中的所有数据,在应用重启后一律清空,需要重新载入缓存。本地缓存

管理采用的是标准的key-value形式保存,于Java中采用的结构形式为HashMap结构,HashMap 有利于快速的存取,因而采用该结构保存本地缓存。其中key的类型为string,value的类型为object。本地缓存管理对于类型的限制基本没有。Value可以置入任何Java支持的对象。 本地缓存管理中,保存进入缓存只需要使用CacheUtils中的save方法进行保存即可,保存的数据在本地缓存中不做多余的处理,直接置入缓存中。由于采用的是以Object类型的形式保存,并不会对保存的数据进行转换,获取保存的缓存数据时直接使用CacheUtils中的get方法即可取得保存的数据,达到怎么存就怎么取,存什么取什么。无需更多的变换数据结构,更不会导致因为存储导致类型的变换或者数据的丢失。 由于存什么取得的就是什么,因而直接修改取得的数据对象有可能导致缓存数据也被修改。Redis缓存管理 Redis缓存管理需要开启redis服务器并正确配置连接信息,系统会在启动的时候检测redis是否可以正常连接启用,如果没有正常连接启用则使用本地缓存管理。 Redis缓存管理对于类型具有特别的要求,对于不同的数据类型需要使用对应的类型进行保存。且不允许使用复杂的对象类型进行保存,如list-object是不被允许的,需要转换为list-string的类型再进行保存,同理Map类型也不被允许使用Object,但是单个JavaBean是允许进行存取的。即redis 缓存管理不支持三维结构存储,仅支持二维结构存储。 Redis缓存管理的数据会有简易的持久化。即当redis停止后或者系统停止后,再次启动时redis 依然存有数据提供,不需要再次载入缓存。如果缓存设置了失效则可能会被清除。 Redis缓存管理保存、修改 由于redis数据类型的特殊性,所以所有Java中复杂的对象存储都需要进行相应的转换后才可

java所有运行时异常以及错误

算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:NegativeArrayException 数组下标越界异常:ArrayIndexOutOfBoundsException 违背安全原则异常:SecturityException 文件已结束异常:EOFException 文件未找到异常:FileNotFoundException 字符串转换为数字异常:NumberFormatException 操作数据库异常:SQLException 输入输出异常:IOException 方法未找到异常:NoSuchMethodException https://www.doczj.com/doc/0e18790225.html,ng.AbstractMethodError 抽象方法错误。当应用试图调用抽象方法时抛出。 https://www.doczj.com/doc/0e18790225.html,ng.AssertionError 断言错。用来指示一个断言失败的情况。 https://www.doczj.com/doc/0e18790225.html,ng.ClassCircularityError 类循环依赖错误。在初始化一个类时,若检测到类之间循环依赖则抛出该异常。 https://www.doczj.com/doc/0e18790225.html,ng.ClassFormatError 类格式错误。当Java虚拟机试图从一个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。 https://www.doczj.com/doc/0e18790225.html,ng.Error 错误。是所有错误的基类,用于标识严重的程序运行问题。这些问题通常描述一

些不应被应用程序捕获的反常情况。 https://www.doczj.com/doc/0e18790225.html,ng.ExceptionInInitializerError 初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的static语句段。 https://www.doczj.com/doc/0e18790225.html,ng.IllegalAccessError 违法访问错误。当一个应用试图访问、修改某个类的域(Field)或者调用其方法,但是又违反域或方法的可见性声明,则抛出该异常。 https://www.doczj.com/doc/0e18790225.html,ng.IncompatibleClassChangeError 不兼容的类变化错误。当正在执行的方法所依赖的类定义发生了不兼容的改变时,抛出该异常。一般在修改了应用中的某些类的声明定义而没有对整个应用重新编译而直接运行的情况下,容易引发该错误。 https://www.doczj.com/doc/0e18790225.html,ng.InstantiationError 实例化错误。当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常. https://www.doczj.com/doc/0e18790225.html,ng.InternalError 内部错误。用于指示Java虚拟机发生了内部错误。 https://www.doczj.com/doc/0e18790225.html,ng.LinkageError 链接错误。该错误及其所有子类指示某个类依赖于另外一些类,在该类编译之后,被依赖的类改变了其类定义而没有重新编译所有的类,进而引发错误的情况。 https://www.doczj.com/doc/0e18790225.html,ng.NoClassDefFoundError 未找到类定义错误。当Java虚拟机或者类装载器试图实例化某个类,而找不到该类的定义时抛出该错误。 https://www.doczj.com/doc/0e18790225.html,ng.NoSuchFieldError 域不存在错误。当应用试图访问或者修改某类的某个域,而该类的定义中没有该域的定义时抛出该错误。 https://www.doczj.com/doc/0e18790225.html,ng.NoSuchMethodError

应用程序池 'DefaultAppPool' 提供服务的进程关闭时间超过了限制

应用程序池'DefaultAppPool' 提供服务的进程关闭时间超过了限制 服务器经常产生“应用程序池'DefaultAppPool' 提供服务的进程关闭时间超过了限制。进程ID 是'2068'。”的错误,导致iis处于假死状态,经了解是IIS应用程序池的设置问题。解决方法如下: Internet 信息服务(IIS)管理器->应用程序池->DefaultAppPool->右击属性 一、回收 1、回收工作进程(分钟):选中,值为1740 2、回收工作进程(请求数目):不选(原先设置为35000) 3、在下列时间回收工作进程:不填 4、消耗太多内存时回收工作进程:全不选。(2、3、4项可能避免了在访问量高的时候强制回收进程可能引发的服务器响应问题,导致iis假死不响应) 二、性能 只选中空闲超时20分钟。其他都不选。WEB园最大工作进程数为1(默认)。注意web 园这里一定要保持默认,如果填写其他超过1的数字就会导致一些网站程序的后台程序打不开或者刷新不停。 原来的请求队列限制为4000,现在无限制。 三、运行状况 前两项都起用,是原来的默认设置。启动时间限制90秒,关闭时间限制180秒。 启动快速失败保护的钩去掉! 为了避免真的遇到很多错误时没有提示,可以不关闭,只是把快速保护的保护范围加大些,例如失败数50次时间段5分钟则关闭对应的程序。 “关闭时间限制180秒”是必须的,因为进程关闭的时间,原来为90秒限制,是默认值,如果进程关闭时间超过90秒,则认为超时,从而出现:进程关闭时间超过了限制日志,所以,适当延长这个时间,可以避免这种错误 第2种方法: 原因:独立进程的内存堆戋消耗完了,IIS不能创建更多的进程工作空间来处理 解决方法: 1. HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC 2. 在Parameters键下新建一个DWORD项,名字为:UseSharedWPDesktop 值为1 重启IIS 第3种 问题已解决,发现是数据库连接无法释放,不知道是什么原因,同样的代码在本地就是好的,在服务器端就有问题,最后在连接串里加入以下语句解决问题. Pooling=true; MAX Pool Size=512;Min Pool Size=50;Connection Lifetime=30 第4种 新建应用程序池,不同的网站引用不同程序池。 为应用程序池'AppPool #1' 提供服务的进程关闭时间超过了限制。进程ID 是'3000'。 出现上面情况后,该应用程序池对应的网站就访问的非常慢,几乎是打不开。

嵌入式软件动态运行时错误的检测

嵌入式软件动态运行时错误的检测 刘艳会 1 概述 嵌入式软件是世界上重要应用软件的核心,目前已经广泛应用于国防、航空航天、医疗等重要行业中,确保它的稳定可靠是极为重要的任务。随着当前应用系统规模的增大和复杂度的增加,嵌入式软件测试的成本也直线上升,同时也突出了当前所用测试工具和测试方法的局限性。 和桌面系统不同,对于嵌入式软件系统,软件测试主要是发现以下类型的错误: 功能错误 主要依靠测试人员依据项目需求说明,编写功能测试用例并运行测试用例,从而验 证软件的功能 性能错误 一般需要放到真实的环境中,借助于硬件级别的工具,来衡量软件的性能是否达到 要求 运行时错误(Run-Time Error) 以前没有有效的检测技术,一般不会专门做运行时错误的检查 对于嵌入式系统软件来说,这些错误中,运行时错误是最难发现、又最具风险的错误。欧洲航天局阿里亚纳501号火箭在升空后不到20秒就发生爆炸,其原因就是因为控制飞行姿态的一段代码蕴含有一个变量溢出的运行错误,发生了溢出的变量控制着火箭急速转向而过载。 那么到底什么是软件运行时错误呢?运行时错误都包括什么类型呢? 1 什么是软件运行时错误?(Run-time Errors) 运行时错误(Run-time Errors)就是软件在动态运行时出现的错误,是所有的软件错误中最具风险的。相信熟悉Windows应用系统的人来说,一定经历过以下的情形:

图1.1 Windows 2000操作系统上发生运行时错误的现象 图1.2 Windows XP操作系统上发生运行时错误的现象 图1.3 UNIX操作系统上发生运行时错误的现象 这种情况下,不管我们做什么选择,应用程序都会退出。可能对于一般的软件来说,出现这样的错误没关系,但对于航空航天、汽车以及医疗设备等安全级别要求非常高的系统来说,一旦出现这样的运行错误,损失就是不可估量的。 运行时错误由ANSI C定义,是指那些能导致预定义之外的不正确结果或者处理器停机的错误,它是所有的软件错误中最具风险的,其后果包括:处理器停机,数据崩溃、安全保密受到破坏等。

应用程序正常初始化(0xc0000005)失败

应用程序正常初始化(0xc0000005)失败 说明文字:PAGE-FAULT-IN-NONPAGED-AREA 通常的原因:内存错误(数据不能使用分页文件交换到磁盘中). 解决方法:卸掉所有的新近安装的硬件. 运行由计算机制造商提供的所有系统诊断软件.尤其是内存检查. 检查是否正确安装了所有新硬件或软件,如果这是一次全新安装,请与硬件或软件制造商联系,获得可能需要的任何Windows更新或驱动程序. 禁用或卸载所有的反病毒程序. 禁用BIOS内存选项,例如cache或shadow. 应用程序初始化内存分配错误。 0xc0000005错误发生的诱因主要分为四大类: 1、自由表存储载体的缺陷(主要体现在VCX、VCT,SCX和SCT上)。 2、第三方监控性质的软件。(如:防毒软件在内存即时监控状态下、词霸软件在全屏拾取模式下等); 3、VisualFoxpro自身的代码漏洞; 4、硬件因素。 建议断开网络,然后关闭防火墙,再安装试试,如果不行,重启电脑再试,再不行则归类为程序缺陷了。 存不能为“read”或“written”的解决方案 有些人运行飚车程序的时候会弹出该内存不能为“read”的错误提示。希望以下文章能对大家有所帮助。 使用Windows操作系统的人有时会遇到这样的错误信息,运行某些程序的时候,有时会出现内存错误的提示,然后该程序会自动关闭或点击后关闭,严重的会无法关闭。 “0x????????”指令引用的“0x????????”内存。该内存不能为“read”。 “0x????????”指令引用的“0x????????”内存,该内存不能为“written”。 不知你出现过类似这样的故障吗?(0x后面内容有可能不一样。) 散一般出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。 1、微软IE缓冲溢出漏洞引起 2、内存或虚拟内存地址使用冲突造成程序的运行需要分配一定的内存地址给程序使用,当程序结束时释放留出空间让给新的程序使用,win是多任务的系统有时前程序未结束又有

串口通信中接收数据时延迟处理与缓存处理解决方案

串口通信中接收数据时延迟处理与缓存处理的解决方案 利用串口进行通信当发送方将数据写入串口后通过无线或有线方式将数据传送给接收方通过调用串口读方法参数即可将数据读出。原理十分简单但最近在利用串口处理无线传输时数据总是一段一段的传到并不能在方法中单纯使用方法将数据接收完全。我知道用缓存机制但由于经验少正在实习到网上找了找大牛们的方法并结合自己的理解发现有两种方法可以处理。方法一控件的数据接收方法当有数据来临时会触发会创建一个线程悲哀因为之前不知道它另辟线程所以自己编写了一个线程处理函数因此当串口在等待数据时不影响主窗体或主线程的操作。所以当数据到来时可以通过让接收函数休息毫秒这毫秒做什么用呢就是让所有的数据都到达时再读取这样就逃避了分批到达的问题。很明显这是在糊弄。因为万一毫秒都不够呢所以方法二更合适。代码等待毫秒收到的字节数。定义接收字节数组接收数据方法二使用缓存机制完成。首先通过定义一个成员变量用来存放所有的数据在接收函数里通过方法不断地将接收到的数据加入到中并同时对中的数据进行检验如果达到一定的长度并且校验结果正确校验方法在发送方和接收方一致再进行处理。具体代码如下代码是串口控件 .缓存数据 .完整性判断至少包含帧头字节、长度字节、校验位字节根

据设计不同而不同查找数据头传输数据有帧头用于判断数据区尚未接收完整得到完整的数据复制到中进行校验开始校验校验失败最后一个字节是校验位数据包不正确执行其他代码对数据进行处理。帧头不正确时记得清除在方法二中有一句“执行其他代码对数据进行处理”如果这些代码涉及到主线程的控件比如就要涉及跨线程访问控件的问题。串口的方法会创建新线程这在本文开始时已经说明对于跨线程访问及更改控件属性也有两种方法

Window7操作系统下IIS配置部署Asp

Window7操作系统下IIS配置部署https://www.doczj.com/doc/0e18790225.html, 操作系统:window7 中文旗舰版 测试IIS :IIS7.0 测试日期:2010-12-20

Window7操作系统下IIS配置部署https://www.doczj.com/doc/0e18790225.html, 一、IIS与https://www.doczj.com/doc/0e18790225.html, Framework安装 进入控制面板-程序功能,点击左侧的打开或关闭windows功能,进入安装界面,如图1所示。 图1-打开或关闭windows功能界面 此处注意: 选择Internet信息服务选项,下有三个子选项:FTP服务器、Web管理工具、万维网服务。把FTP服务器、Web管理工具的所有子项全部勾去选中。 万维网服务一项,有一个应用开发功能子项,把下面的ASP等子项均选中,其他子项可以选择安装也可以全部安装。 https://www.doczj.com/doc/0e18790225.html, Framework 3.5.1及其子项选中安装 经过上述两个步骤,安装完成即可。 二、IIS配置 在使用IIS发布网站之前,要对IIS进行配置。

1、安装完IIS,打开IIS管理器如果2所示。 打开方式:控制面板-管理工具-Internet信息服务(IIS)管理工具,打开即可; 或从运行-输入命令inetmgr.exe即可直接打开管理器窗口。 图2-IIS管理器界面 2、更改应用程序池设置 安装完IIS以后,默认的应用程序池为DefaultAppPool,托管管道模式为集成,标识是ApplicationPoolIdentity,应用程序数量1,就是默认网站。 1)在应用程序池,点击右键-添加应用程序池,进入添加页面,添加程序池界面如图3所示。注意:名称为:https://www.doczj.com/doc/0e18790225.html,AppPool,版本选择.NET Framework v2.0.50727,托管管道模式选择:经典;选择立即启动,确定即可。 图3-添加应用程序池界面 2)为默认网站修改应用程序池

相关主题
文本预览
相关文档 最新文档